I ran into this issue whilst copying a large amount of data from a Windows 2003 (SP2) host to a Windows XP (SP2) client. The copy ran for around 20GB and then suddenly failed. The client was rebooted and the process repeated, again the copy failed around a similar point.
After a little research I came across a couple of posts pointing me towards the direction of the IRPStackSize entry within the registry.
The following was taken from http://support.microsoft.com/kb/285089 “…The IRPStackSize parameter specifies the number of stack locations in I/O request packets (IRPs) that are used by Windows 2000 Server, by Windows Server 2003, and by Windows XP..”
To change this behavior there is a registry key that needs to be added or values altering.
1) Locate HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters
2) Locate or add the key IRPStackSize (DWORD) and enter a larger decimal value. The default value is set at 15. Valid ranges are from (decimal) 11 through to 50.
Although probably not best practise (recommendation is to increase the value by 3 at a time) I added a larger value of 20 and all my issues seemed to have been solved.