private file downloads don't work with IE8 only when using hook_file_download
I found that if I added "'Cache-Control' => 'private, must-revalidate'" to the returned array within hook_file_download that the file also downloads for IE8 (see below section).

$mime_type = file_get_mimetype($uri);
return array('Content-Type' =&gt; $mime_type, 'Cache-Control' =&gt; 'private, must-revalidate');