ci sono alcuni errori di concetto
il limite del ciclo, dal momento che non vai a ricalcolarlo ogni volta, non e' valido se cambi la lunghezza dell' array nel ciclo stesso

in pratica se cambi cosi' almeno non hai l' errore
for (cont=0;cont<document.modulo.sotto_cat.options.len gth;cont++){

ma soprattutto, andando a distruggere tutte le option che non corrispondono alla mia prima scelta non ho mai possibilita' di effettuare una scelta diversa! sarebbe voluto questo comportamento?