Hosting a static website on S3 is fairly straight-forward. Unless you have a big site containing one or more nested subdirectories with hundreds or thousands of small files. The Amazon console's upload function cannot handle this elegantly. s3cmd to the rescue!:
s3cmd --acl-public --guess-mime-type -r put * s3://your-bucket-name
The --guess-mime-type option was particularly obscure, if this is not set for each file then the default mime-type is "binary" and the browser just wants to download anything you point it to on the site.