Hallo,
header( 'Content-type: application/download\n' );
Diesen Content-Type gibt es nicht. Außerdem braucht der Header zwei "\n\n", damit eine Leerzeile entsteht.
Was der Apache so an Content-type's kennt, steht hier:
http://rolfrost.de/cgi-bin/download.cgi/mime.types?download=mime.types
Bau Dir mal ein testscript, was nur folgendes ausgibt:
"Content-type: application/octet-stream\n\n"
"\0"
Starte den Browser und schau mal was passiert. Es sollte dem Verständnis dienen.
Hotte