Once in a while I get featured on a social news site.
Originally I hosted everything on Amazon S3 - the theory is that for spiky loads the site won't die, or even slow down at all. The problem as it turns out, is that images and video take a lot of bandwidth to serve (roughly 150MB per visitor!), and S3 bandwidth is really expensive. This particular spike cost me about $450 CAD.
I got to thinking about reducing costs, and now I use a hybrid solution. I host two copies of the site - one on S3 and one on a linode. The default copy is on S3 to maximize reliability, and on load an ajax request is sent to the linode. If the request never finishes, has high latency, or reports high resource usage the script continues loading from S3. Otherwise it switches a flag, and the images that haven't yet loaded will be routed to the linode.