I'm off to Switzerland tomorrow and this is one of the reasons I love my Android phone:
Now I can switch my data off (and save a load of cash) without getting lost, as the GPS will function as normal.
Do cool features like this help make carrier contracts a bit obsolete? I think so; there's so many ways of working round expensive data costs when you have a decent smartphone. That's why I've ditched my contract and gone with Giffgaff.
To enable this on your Android on a recentish version of Google maps, just go to Settings > Labs > Precache Map Area. Now when you click on an address you'll get the option to precache, which grabs the 10 square miles around it. The one above (of Basel) costs 6MB of disk space, a small price to pay not to have to wonder around trying to find stuff in a language I don't really understand. :)