el move_uploaded_file() tal cual lo empleas con $archivo (que llega de $_FILES['imagen']['tmp_name'] y $nombre (que llega de $_FILES['image']['name'] .. debería guardarte en el mismo directorio que ejecutes ese script (el cual tendrá que tener permisos de escritura al menos) el archivo que has subido por tu "Upload HTTP" ..
Tambien tienes funciones tipo is_uploaded_file() para comprobar si el archivo ha subido (llegó al tmp_ ..) para que puedas luego moverlo o copiarlo ..
A todo esto .. revisa en tu phpinfo() del servidor donde no te funciona el tema de:
Cita: ; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir =/tmp
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
Sobre todo la directiva: file_uploads y que el directorio temporal para los "uploads" sea alguno distinto de "no value" (ademas de que el tamaño máx. de archivo sea mayor de 0) .. Si alguna de estas directivas no tiene esos valores (aprox.) No estará habilitado el "Upload" en ese servidor.
Un saludo,