grin
Welcome to the donwerful world of cross browser compatability.
I have had this crop up again and again, and unfortunately I cannot find one single solution which will work for all platforms.
The answer goes along these lines....
IE works differently to Netscape on a lot of levels. One of these levels is how it determines the content being fed down to it from a web server. IE does not always rely on the content-type header that you set (or Apache sets), but actually starts the download and "sniffs" the file headers to see if it can determine what is actually being downloaded. If appropriate, it will then display content, or prompt you for where to save it etc.
This allows IE to be a bit cleverer than all the other browsers, but can also work to it's disadvantage, when trying to force it to make the actual download save to a users machine.
Netscape doesn't do this and seems to rely solely on the content-type header that you send to it.
So - the short answer is - yes you do need to store all those lovely MIME content-types so that you can dump the correct header to each browser as required. This means a bit more code, but at least it works 🙂