This time around, a possible solution came to mind: to use a BitTorrent type of mechanism.
Suppose that there was an extension made to the http protocol. This extension would allow a browser to set a flag when it requested a page. The flag would say that the browser was willing and capable of acting as an auxilliary server.
Most of the time, this bit would be ignored and the server would just send back the page. However, if the request load suddenly increased, the server would start delegating some requests to recent browsers which had volunteered to act as helpers (sending a number of requests in a bundle along with a list of additional helpers - the other site would then work with the extra named helpers to provide the cached copy of the page to the list of requesters).
This would mean that you don't need to make your host powerful enough for the biggest peak that will come along, but simply big enough to handle the normal load and it can get help on the peaks from the same computers that are causing that peak to happen. This is especially useful for private sites which normally have a small audience, but might someday get "discovered" for its 15 minutes of fame.
This change would have to be supported both the the server and by browsers which are capable of acting as servers (or are connected to a server - a connection proxy that merges the request streams of all your users and connects them to you site server might do the job).
A heavily loaded server could, also like BitTorrent, give preference to requests that have the flag set, and if it is too heavily loaded, prefer to drop requests from users who don't offer to offload the work. That would provide incentive for people to move to a browser that supported this extension.