Hola,
¿Exactamente a que llamas fallar? Porque a veces tambien da algun mensaje de error. Como en el caso que te comenta Martin, creo que suele decir tiempo de ejecucion excedido o se queda la pagina en blanco. Si parece que funciona pero lo que no hace es guardar el fichero, quizas es porque PHP esta configurado para subir ficheros pequeños. Mira en el phpinfo() los valores de las directivas upload_max_filesize y post_max_size que limitan el tamaño de los ficheros a subir (nomalmente un mega). Revisa
http://www.php.net/manual/en/features.file-upload.php .
Saludos.