The problem in this case was script timeout which by default is only 90 seconds so large files were getting discontinued. To resolve the problem I added some script to set a time out proportional to the download and allowing for slow coaches...
if strDocFileSize <> "" then
strScriptTimeout = (strDocFileSize/1024000)*40
else
strScriptTimeout = 30000
end if
Server.ScriptTimeout = strScriptTimeout