Gracias, en este momento no puedo probarlo pero cuando lo haga aviso si me funcionó.
 
En todo caso el código según entiendo quedaría así:  
 Código PHP:
    if(is_uploaded_file($_FILES['archivo']['tmp_name'])){
            if($_FILES['archivo']['type'] == "image/jpeg" || $_FILES['archivo']['type'] == "image/jpg" || $_FILES['archivo']['type'] == "image/pjpg"){
                move_uploaded_file ( $_FILES [ 'archivo' ][ 'tmp_name' ], $demo.$foto);
                crear_miniatura($foto);
            }
            else
                $error .= "El archivo debe ser una imagen en formato JPG<br>";
        }
        else{
            $error .= "No se ha podido subir el archivo de imagen<br>";
        } 
    
  Una pregunta... 
el último MIME que mencionas (image/p-jpg) ¿no es en realidad image/pjpg? 
Lo acabo de probar y sigue sin funcionar... 
ya verifiqué que el error se encuentra en el navegador pues con Firefox funciona, y en el mismo cliente con IE6 no funciona... 
¡Arreglado! 
El MIME que se envía con IE es 
image/pjpeg