Hi Greg,
If you want to avoid having the Content-Type header set, I think your best option is to find where the Javascript file-uploading code is setting this header then prevent it, or at least make sure that it is always set to the same value – "application/octet-stream" would be a reasonable default.
S3 itself doesn't have any default content type, though it is standard practice to set this header with a value appropriate for the file being uploaded. However this is difficult with a pre-generated signed PUT form, since you probably won't know in advance exactly what type of file will be uploaded (e.g. an image might be a jpeg, a gif, etc etc...)
The easiest thing would be to set your own default like "application/octet-stream" in the Javascript client, then generate the signed PUT form with this content type.
If you need to properly support different file content types that you don't know in advance, you might be able to do this by dynamically requesting a new PUT from your server with the appropriate Content-Type header etc once you know what kind of file will be uploaded. That is, start off with a generic PUT form but obtain and use a brand new file-specific PUT form to do the actual upload to S3. But this would get pretty complicated...
Hope this helps,
James