Suntra,
I did some tests and it appears as if you are right. I made a test form and uploaded various files with various file sizes. It seemed as if the files had to be uploaded to the temp folder in their entirety in order to "throw" them out.
It seems kind of silly to have to wait for a 4MB file to upload completely until you can tell the user with PHP that the file was too big and that allowed size is 2MB. Or whatever you want to tell using the $_FILES global variables.
Another thing I realized in my test was that I also had to wait for the upload until I could figure out the MIME type of the file (with $_FILES['userfile']['type'])...So I realized that it would probably be smart to pre-check the file extension type before proceeding to upload (and then further check MIME).
I think I will have to learn more about MIME types too. If anyone knows of a good tutorial I would be grateful!