I've been getting bad downloads myself. I may have to check the length of the PHP timeout given. This may have something to do with why you're getting a bad file. Whats the file size? Does it end up being the same as what your browser says?
I've reduced the file sizes significantly so getting time outs while downloading the issue shouldn't be as much of an issue anymore. Should be faster actually.
Bookmarks