Bien, vamos aclarando las cosa. Ademas de meterlo en un fichero aparte, tambien lo has metido dentro de una funcion (¿a que no tenias el codigo metido en una funcion cuando no usabas el include?).
El problema es el ambito de las variables, en este caso el array $HTTP_POST_FILES. Este array no es superglobal (como son $_POST o $_GET), asi que no es accesible directamente desde dentro de una funcion. Ya que usas otros arrays superglobales, usa $_FILES en su lugar.
Mas sobre el ambito de las variables:
http://www.php.net/manual/en/languag...bles.scope.php
saludos.