The copter doesn't need to know where it is, just whether it is moving and if so, how far and in what direction. Because the error in GPS measurements doesn't vary much in small time frames, that can be done more accurately than absolute position measurements. See http://en.m.wikipedia.org/wiki/Differential_GPS.
A "good" GPS system (the DJI version is ~$100 by itself I think) should be able to get you down to just a few inches of precision, but yes, the market is flooded with cheap (~$20) units that aren't nearly as useful for position hold (hovering completely still) but can still give you a good lat/long and do well with navigation, distance measuring or acting as a reference sensor for a automatic direction tracking antenna. Cell phones are similarly hit or miss-- some have nicer GPS modules than others, but ultimately the user is unlikely to notice this since smartphone style road navigation only requires 10 meters or so of accuracy and a vague single position can be greatly refined in that context by knowing the road/map layout as well as the direction and speed of travel.