It might have been stupid of me, but I didn't quite grasp the details of how Google was going to pay for its free WiFi offerings until I saw this article by Kevin Newcomb. I think I understand it now.
The strategy is simple and elegant. Extend the IP geolocation Google already does for AdWords to include geolocation of WiFi hot spots, then target fine-grained localized advertising to the users.
For example, let's say I'm sitting in Dolores Park in San Francisco using Google's free WiFi. Google can recognize which WiFi node I'm using, pinpointing my location down to a couple hundred feet, and target ads on Google services to nearby businesses. I'm browsing through GMail, getting a little hungry, and perhaps one of the ads would be for the popular Dolores Park Cafe. I do a Google search for "flowers", one of the ads might be for buying flowers at the nearby Pay N Save Grocery.
The ads don't have to be in-your-face popups. Instead, existing advertising on Google services would be better, more targeted, more useful, and more interesting. Clever.
If I were Google, I'd start doing this immediately, before I even have local advertisers lined up. I'd experiment with pulling popular, highly rated, useful business listings out of Google Local and place them up instead of (or in addition to) one of the AdWords ads. After gathering the metrics, making the case to local advertisers should be straightforward, here's the numbers, here's the value you're missing.
[Found on Findory]
Update: The Google SF WiFi proposal (PDF) does hint at this approach, though it focuses on local advertising using geolocation for a start page (when you first join the network) and is vague about whether advertising across Google would be impacted.