When I use the local search engines (Google/Y! primarily, but many of the smaller players too) I feel like the results are influenced too heavily by the proximity of the results to my address or, even worse, the city 'center'.
If am searching for a family doctor in my area, I am willing to travel the extra 5 miles to live a little longer. Because of that, I want to find the best (ok, I will settle for the most 'relevant') doctor in my area.
I think the challenge is that the weighting of result proximity is best decided based on the user query and the location they are searching in (searches for a Dry Cleaner in NYC should be more sensitive to proximity than searches for a real estate agent in Suburbia, USA). You would need to have a pretty flexible algo and pretty good query pre-processing to make this work.
The way to get that working is, in theory, quite simple. Hand input the likely coverage radius for each of the 2000 main IYP headings then use that when a search matches one. The problem comes in when people use terms that are not known as being from a particular heading (this is natural that people will, in fact it's good they do).
I suppose we'll all get better at understanding the areas that queries come under as we gather more data.
Weighting the query by distance can be easily changed from no weighting if in the defined radius right up to 100% at the middle and decreasing in a linear or exponential fashion to 0% at the boundary.
I agree that proximity needs vary by type of business. If I'm looking for Chinese take-out, distance is a huge weighting factor - one within a few blocks would be great, one on the other side of town would be out of the question.
If I'm looking for an intellectual property attorney in my area, though, distance is a lot less important. As long as they have a physical presence in my defined radius, other algo factors may lead to a more helpful ranking.