This is the idea I came up with a few weeks ago on another Uber thread that would fix everything: registered destinations. A driver registers a destination for their trip, and only then are they shown potential "customers/fares/ridesharers/etc"-who have also registered a destination-along their route within a slight variance depending on trip length (driving across a city it might be a block or 2, across state several miles). They can only pick up a new passenger once they have reached their original destination and registered a new one or, if they had a passenger get off during their previous trip, a new passenger registers with an applicable destination.
This kind of system would ensure that you are in fact ridesharing, ie. picking up passengers who are going to the same general area you are or a place you will pass along the way as opposed to working as an unlicensed taxi. Throw in a "fare" based on mileage/depreciation/a little extra for your time as opposed to Uber's surge pricing and you get rid of the issue of people taking this on as a job because it suddenly is not worth the effort. You still get compensated enough to offset the gas and depreciation of your car that you would be doing anyway, and at the end of the week you might have enough money to go out for a good dinner or maybe even enough for a trip for 2 to the movies.