codice:
<head>
<script type="text/javascript">
function regione(reg) {

   var lettera = new Array();
   var selLET = document.getElementById('lettera');
   while(selLET.options.length > 0) selLET.removeChild(selLET.options[0]);
   selLET.style.visibility = 'hidden'; // nascondi la seconda select

   if (reg == "") return;

   switch(reg) {

        case '1':
            lettera.push('scegli una lettera');
            lettera.push('A');
            lettera.push('B');
            //...
            selLET.style.visibility = 'visible'; // metti l'istruzione in corrispondenza del case che ti intressa
            break;
   }


   for (i=0; i<lettera.length; i++) {
      opt = document.createElement('option');
      opt.setAttribute('value', lettera[i]);
      opt.setAttribute('text', lettera[i]);
      opt.innerHTML = lettera[i];
      selLET.appendChild(opt);
   }
}
</script>
</head>

<body>

<form action="select_automatiche.php" method="post">
<select name="sel1" id="titolo" onchange="regione(this.value)">
<option value="0">Scegli un titolo </option>
<option value="1">Ing.</option>
<option value="2">Arch.</option>
</select>

<select name="sel2" id="lettera"></select>
<input type="reset" onclick="lettera()" />


<input type="submit" name="submit" value="stampa">
</form>

</body>
così e quasi perfetto,

la ciliegina sulla torta sarebbe questa:

lo script per visibilità della select funziona bene, però quando richiamo la pagina che contiene questo codice, come prima opzione nella select1 ho:

<option value="0">Scegli un titolo </option>

e la seconda select viene visualizzata ugualmente.

è possibile nascondere la seconda select al richiamo della pagina ?