Gracias por la respuesta, Mort. He probado como dices, pero sigue sin funcionar. Por si sirve de algo, comentando las líneas encargadas de insertar al usuario, todo funciona correctamente (Obviamente, el usuario no se da de alta en la BD, sólo se muestra el mensaje que corresponde):
Código PHP:
else{ // En este caso no se encontraron usuarios con el mismo nombre. Lanzamos la secuencia para dar de alta
//mysql_query ("GRANT SELECT, INSERT, UPDATE ON db_discos.discos TO $name IDENTIFIED BY '$pass'", $con);
//mysql_query ("INSERT INTO usuarios (nombre, password) VALUES ('$name', '$pass')", $con);
echo "<html><head><meta http-equiv=\"refresh\" content=\"5; url=entrada.html\"></head><body><div align=\"center\"><font face=\"Courier New\">Registro completado satisfactoriamente ($name, $pass).<br>Ahora puede usar su nombre y contraseña para acceder.</font></div></body></html>";
}
Es decir, ahora si ingreso un usuario que no existe, sale el mensaje del if y no entra en el else.
El problema parece que es como si se ejecutaran primero las sentencias "mysql_query" del else y luego pasara a hacer el SELECT.