Hola,
Me huele a register_globals a OFF. Mira el valor de esa directiva en el php.ini. Tu script solo funciona si register_globals esta a On. Creo que a partir de la version 4.2 viene por defecto a Off, porque es mas seguro.
Yo te recomendaria cambiar tu script por uno que funcione con register_globals a Off. Puedes usar el codigo del manual
http://es.php.net/manual/en/features.file-upload.php como base.
Por cierto, dependiendo de la configuracion de PHP (safe_mode) puede que no puedas usar fopen() para acceder directamente al fichero temporal creado.
Saludos.