Personally I think the only solution will be peer-to-peer devices [1], but we couldn't do that with software only as the phone companies have already shown they couldn't be trusted for something like this [2].
[1] If you're familiar with the "one laptop per child" project then you can see what I mean. Every device will peer up with any devices it can see, so your network is simply all your peers plus all their peers (recursive). This can be attacked too, but it lacks the single point of failure that our current ISP oriented networks have.
[2] http://www.wired.com/threatlevel/2009/06/wsj-nokia-and-sieme...