Nidificare gli if non è problematico ma può portare confusione.
Sarebbe sempre meglio non nidificarli se non necessario.
Codice PHP:
//Eseguo un controllo su alcune caselle, se sono vuote mostro un errore 
if ($_POST['titolo'] == "" /*|| $_POST['regia'] == NULL || $_POST['note'] == NULL*/) { 
   echo 
"Dati mancanti"
}else{ 
   if (isset(
$_POST['prestito'])) {
      if(
$_POST['a']=="") {
         echo 
"[b]Errore: Riempi il campo a[/b]"
         
header"refresh: 3; url=form_insert.php" );
      }
   }

Ricapitolando:
1. se POST titolo è uguale a "" ritorna errore altrimenti
2. se è settato POST prestito esegui:
3. se a è uguale a "" mostra messaggio errore e redirect

Qui però non vedo una cosa: come fa a sapere il sistema se ci sono stati errori o meno?
Il codice continuerà e sarà inevitabile che scriva a video ciò che è scritto di seguito, tra cui anche:
Codice PHP:
//Stampa a video i dati inseriti e da conferma dell'inserimento 
echo "<h1>Riepilogo dei dati inseriti</h1>"
echo 
"I dati sono stati inseriti correttamente.
"

Dovresti fare un controllo. Se, ad esempio, la variabile i è uguale a 1 ci saranno degli errori, se uguale a 0 è tutto ok.
Esempio:

Codice PHP:
//Settiamo la variabile i uguale a 0 perché non ci sono errori fino ad ora
$i=0;
//Eseguo un controllo su alcune caselle, se sono vuote mostro un errore 
if ($_POST['titolo'] == "" /*|| $_POST['regia'] == NULL || $_POST['note'] == NULL*/) { 
   echo 
"Dati mancanti"
   
$i=1;
}else{ 
   if (isset(
$_POST['prestito'])) {
      if(
$_POST['a']=="") {
         echo 
"[b]Errore: Riempi il campo a[/b]"
         
header"refresh: 3; url=form_insert.php" );
         
$i=1;
         
//Qui potresti mettere un exit(); perché fai un redirect
      
}
   }
}

//Dopodiché se non ci saranno errori scriveremo a video:
if($i==0){
   echo 
"<h1>Riepilogo dei dati inseriti</h1>"
   echo 
"I dati sono stati inseriti correttamente.
"
;

Capito il ragionamento?

Consiglio: vai a capo correttamente, il codice ti sarà più facile da leggere.
PHP non legge gli accapi e i tab quindi crea il codice più leggibile e ordinato possibile e diminuiranno gli errori (o comunque saranno visualizzabili meglio).