If the main problem is the file size limit, can you have the client machine chop the file into < 2 GB chunks (automatically, in the background) before it is sent?
I'm thinking of calling something like Zip Chunker in the background, sending the pieces, and then reassembling them on your end. How one would do that via PHP is left as an exercise for the reader. (IOW, I'm waving my hands around madly.)
http://www.jibbensof...com/utilities.cfm
Just a thought. Good luck.
Cheers,
Scott.