Regional pricing within a country
I have a client that requires their website to have regional pricing, but within the same country.
They service their web orders from their network of physical stores (some franchise and some not) and, as each store can have a different price for an item, these prices need to be reflected on their website.
Ideally, when a customer first arrives they are shown the pricing for the physical store closest to them.
From my understanding though, the only way I can show different prices like this is by creating different websites under the Magento Website > Store > Store View hierarchy, which will not work as I would like to have only the one product catalog.
Is there any other way to accomplish this or is this a lost cause and I should just create the different websites?
The websites can all link to the same products, that is not a problem, however you have a larger problem. Once you start getting to 10s of stores Magento slows to a crawl due to the way it works internally. Once you get to 100s of stores (very few have done this) you need very special hosting, 2GB+ PHP threads and such.
There is a company we know that can do this as realistic cost, for example the Nexcess clusters are $1,500/mth upwards. Specialist Magento hosts will not get very far, and anything else is a no-go.
There are other options but that would require going in to the business requirements as to whether they are suitable, this is not the forum for that and we still can't find where to point people to. The same people also developed special dynamic pricing which sounds like what you are trying to do, whether it would work for your situation is another matter.
Closest thing you can achieve with vanilla Magento is to use website price scope instead of global price scope. Yes, it requires you to create bunch of different website level stores, but this feature is available out of box.
Another possible approach is to use multi-warehouse extension (can't link it here as this is commercial stuff). As an additional bonus you get multi warehouse (doh!) support which considering your problem description might be something you need anyway.