My idea: rather than have this be a freeform text field, users would choose from a drop-down list of countries, then states or provinces, and then have the city be a free-form entry (rather than search through a long list of cities...although it is not impossible since I've seen other sites use this).
To offer a couple of shortcuts, there could be two alternate methods to fill in their location. 1) They could enter a zipcode (US) or postal code (other countries) which would look up the information and enter it as the location. 2) Get their geolocation using a smartphone or tablet, which gives a set of coordinates using GPS or cell tower triangulation; here, only city-level data would be returned and entered as the location, not the user's precise street/address location (for security reasons). IP addresses are not an acceptable source of location data, so they would not even be considered for usage here.
If not part of XF, this would make a good add-on. We're just trying to get rid of "crap" data that many members feel they need to enter, which inconveniences others.