Those dirty people at M$ do it for most of their downloads, clickety click., Although their method is as you would expect dirty, bloated and could be done better.... This is not one for the PHP side of things though, but is only Javascript based....
<form type="get" class="GetForm" id="quickCheck" name="quickCheck" onsubmit="javascript: document.getElementById('btnDownload').disabled=true; setTimeout('document.getElementById(\'btnDownload\').disabled=false', 5000); if (g_IsIE) {window.open('http://download.microsoft.com/download/3/8/8/38889dc1-848c-4bf2-8335-86c573ad86d9/IE7-WindowsXP-x86-enu.exe',null,'toolbar=0,location=no,directories=0,status=0,scrollbars=yes,resizable=1,width=1,height=1,top=0,left=0');}" action="info.aspx">
<input type="hidden" name="na" value="41">
<input type="hidden" name="p" value="0">
<input type="hidden" name="u" value="thankyou.aspx">
<input type="hidden" name="SrcDisplayLang" value="en">
<input type="hidden" name="SrcCategoryId" value="">
<input type="hidden" name="SrcFamilyId" value="9ae91ebe-3385-447c-8a30-081805b2f90b">
<input type="hidden" name="f" value="f">
<input type="hidden" name="familyId" value="9ae91ebe-3385-447c-8a30-081805b2f90b">
<input type="hidden" name="displayLang" value="en">
<script type="text/javaScript" language="javascript">document.write('<input type="hidden" name="oRef" value="' + document.referrer.replace(/"/gi,'') + '" />');</script>
<input id="btnDownload" type="submit" class="infodownloadButton" value="Download">
</form>
That is from the IE7 download page, and is a form just to deal with the Download button.... All works on the onsubmit running a window.open which is your filedownload.php (called http://download.microsoft.com/download/3/8/8/38889dc1-848c-4bf2-8335-86c573ad86d9/IE7-WindowsXP-x86-enu.exe for M$) and then running an action afterwards (info.aspx in M$'s case). This is the building blocks for you....