PHP limita los archivos a subir por configuración bajo las directivas: (php.ini .. lo puedes ver en un phpinfo() también).
Cita: Related Configurations Note: See also the file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size and max_input_time directives in php.ini
También tu servidor HTTP (Apache?) puede limitar el tamaño del archivo que se sube por HTTP.
LimitRequestBody ????
(en httpd.conf o en php.conf)
Revisa los comentarios y documentación de PHP oficial:
http://tr2.php.net/manual/en/features.file-upload.php
Y también .. el tiempo máximo de ejecución del script (por defecto 30 segundos) podría afectar .. si no se hace el "upload" en ese tiempo .. el scritp "falla" por superarse ese tiempo .. Se puede aumentar con: set_time_limit() ...
Un saludo,