Aquí tienen una solución (salió de google) al respecto:
http://www.id.unizh.ch/cl/dl/web/web.../msg00032.html
Está en Aleman (O_o') pero .. el código se sobre-entiende.
Usa un archivo extra en
Perl que lo que "al parecer" hace básicamente es cambiar el propietario del archivo que subimos por médio de PHP. También ejecuta ese comando en la "shell" directo (por un exec() .. ) así que cuidado .. por qué el "safe mode" también desactiva las ejecuciones de exec() en general o se limitan (bien configurado) a ciertos directorios (cgi-bin según emplean ahí) para ciertos comandos ..
En definitiva .. PHP directamente no puede hacer nada al respecto, .. el problema es que "por seguridad" (nos guste o no) .. PHP en "safe mode" verifica el UID y GID de creación del archivo. Nos dá problemas por qué PHP usa y así deja al archivo cuando aplicamos "move_uploaded_file()" con el usuario que PHP tiene .. y el directorio donde nosotros lo movemos suele estar creado (o por arriba de este) bajo -otro- usuario (normalmente el que usamos para acceder por "FTP" al sitio y directorios). Ahí se checkea estos datos y nos salta el error.
Un saludo,