scusa te... ma ogni tanto devo anche lavorere

praticamente se è selezionato dipendente bisogna controllare che ci sia (e sia numerica) la matricola... altrimenti la matricola non deve essere inserita. Giusto?
Se è così potresti abilare o meno il text a seconda della selezione agendo sull'onchange della select
codice:
<select name="tipologia" id="tipologia" onchange="if(this.selectedIndex==0){this.form.matricola.disabled=false}else{this.form.matricola.value='';this.form.matricola.disabled=true}">
e la funzione Controlla così
codice:
function Controlla() { 
  // Variabili associate ai campi del modulo 
  var matricola = document.insert.matricola.value; 
  var cognome = document.insert.cognome.value; 
  var nome = document.insert.nome.value 

  //Effettua il controllo sul campo NOME 
  if ((nome == "") || (nome == "undefined")) { 
    alert("Il campo Nome è obbligatorio."); 
    document.insert.nome.focus(); 
    return false; 
  } 
  //Effettua il controllo sul campo COGNOME 
  else if ((cognome == "") || (cognome == "undefined")) { 
    alert("Il campo Cognome è obbligatorio."); 
    document.insert.cognome.focus(); 
    return false; 
  } 

  //Effettua il controllo sul campo MATRICOLA 
  else if ((document.insert.tipologia.selectedIndex==0)) { 
    if ((isNaN(matricola)) || (matricola == "") || (matricola == "undefined")) { 
      alert("Il campo Matricola numerico ed obbligatorio."); 
      document.insert.matricola.value = ""; 
      document.insert.matricola.focus(); 
      return false; 
    } 
  }
  //INVIA IL MODULO 
  if(confirm('Sicuro di assegnare?'))document.insert.submit(); 
}
io ho usato il selectedIndex che indica quale indice delle option è stato selezionato (Dipendente è l'indice 0)
per sapere il valore della option selezionata puoi usare questa sintassi
codice:
document.NomeForm.NomeSelect.options[document.NomeForm.NomeSelect.selectedIndex].value