Entendí absolutamente nada 

. No sé si estás afirmando o preguntando. Como sea, por lo que entendí quieres validar la página sin necesidad de ir a enviar.php (como aparece en el formulario) y además que verifique si el nombre está vacío o no. Bueno, lo haré a mi manera...    
Código PHP:
Ver original- <?php 
- if($_GET["do"]=="validar"){ 
- //Aquí va el código que deberia haber estado en enviar.php 
- $nombre=$_POST["nombre"]; 
- $validacion="Introduzca el nombre"; 
- } else { 
- // Aqui va el codigo de cuando el nombre no esta en blanco 
- } 
-  } 
- ?> 
-   
- <form action="?do=validar" method="post"> 
-   
- <div> 
- <label for="nombre">nombre<span class="obligatori">*</span></label> 
- <input type="text" name="nombre" id="nombre" value="<?php echo $_POST['nombre'] ?>"  maxlength="38" size="28"/> 
- <?php   
-     echo "<span class='validacion'><br>".$validacion."</span>"; 
- ?> 
- </div> 
-   
- <input  type="submit" name="enviar" value="enviar" id="enviar" />  
- </form> 
Si tienes una duda, consulta por este mismo medio, y no te quedes sin saber lo del isset (que tambien se puede usar en este caso, y de hecho es lo recomendado) ya que es una instrucción muy util.