Se sei in un ambiente condiviso (hosting) non è così strano avere PHP in safe_mode

In questo caso, alcune funzioni, tra cui move_uploaded_file(), girano con delle limitazioni, nel tuo caso il proprietario dello script ed il proprietario della cartella potrebbero essere diversi, ed ecco il problema (nonostante i permessi a 0777)