in reply to NeverMore

I did some quick testing and can get a test wrapper based on your code sample (CGI upload straight to an FTP put) and it worked just fine. Have you tried removing the FTP code for now and just printing the contents of the file back to the webpage?
while(<$file2>){ print }
That would at least narrow down the problem by half telling you if the problem is in the FTP or in the filehandle coming out of the upload. (be sure to upload a TEXT file when you test this or it could look real ugly).

And you've probably already gotten this, but make sure that your form is configured as follows to allow for file uploads:

<form method="post" enctype="multipart/form-data">
Also you should double-check that your stufferror function was not reached. Catching errors messages from CGI's can be tricky.