Fijate bien en la documentación de move_uploaded_file():
  www.php.net/move_uploaded_file 
el primer parámetro es la ruta del archivo origen (el _tmp) y el segundo el nombre y ruta del archivo en destino ... 
El uso que haces del nombre del archivo para $archivo ..podría darte problemas usalo: 
if (move_uploaded_file ($archivo_tmp,$archivo_name)) 
y todo esta declarado asi, pero nada 
$archivo_name= $HTTP_POST_FILES['archivo']['name'];
$archivo_size= $HTTP_POST_FILES['archivo']['size'];
$archivo_type= $HTTP_POST_FILES['archivo']['type']; 
$archivo_tmp= $HTTP_POST_FILES['archivo']['tmp_name']; 
Por lo demás .. no se vé que formulario HTML usas .. pero la codificación de este es importante. 
Recuerda que siempre puedes hacer un "echo" a esas variables y observar que datos trae. 
Por lo demás . .yo NO usaría $HTTP_POST_FILES sino $_FILES más seguro (a partir de PHP 4.1.0) 
------ 
Los otros problemas que tienes no te entiendo. Recuerda que los que aquí intentamos responder no conocemos las condiciones de tus pruebas o sistema .. Yo no sé que hace si un usuario hace "login" o donde van a parar esos archivos .. Sólo te puedo decir que el "move_uploaded_file()" mueve archivos hacia la ruta que indiques .. el nombre de ese directorio o si no está creado hay que crearlo es otro tema . .pero deberías centrar mejor la pregunta. 
Un saludo,