Wow... this is a very interesting issue. Thanks for the additional information gentlemen. I did some more research. When the file is accessed directly, the web server will filter and sends the appropriate HTTP header. This means it will not encode zip files with gzip. When routed through PHP first, the web server will always do gzip, even on zip files. This is true for Apache with mod_deflate as we have, or any server side compression including Microsoft servers! Here is the same issue with Microsoft servers:
http://support.microsoft.com/kb/841120And here is a page linking this to Apache as well:
http://stackoverflow.com/questions/1560075/zip-files-get-corrupted-by-ieOur fixes are exactly the same! Both work. We can either disable the webserver's compression mechanism for downloads and serve the correct MIME types for the files (which allows your browser to suggest proper opening options). Or, we can allow it to operate and serve everything via a single MIME type.
I have chosen to disable the webserver compression for file downloads and serve the correct MIME types. This appears to have resolved the issue for IE.
Re-test and rejoice!

P.S. IE will still send a blank referrer when right clicking 'Save As'. That will still receive a 403 from our site. I am still disallowing that at present time. I may choose to allow again later on when other better mechanisms are implemented to render it no longer useful.