ho controllato meglio e mi sono accorto che...
	codice:
	// crea l'oggetto per la comunicazione AJAX con il server   
function crea_http_req() {   
    var req = false;   
    if (typeof XMLHttpRequest != "undefined")   
        req = new XMLHttpRequest();   
    if (!req && typeof ActiveXObject != "undefined") {   
        try {   
            req=new ActiveXObject("Msxml2.XMLHTTP");   
        } catch (e1) {   
            try {   
                req=new ActiveXObject("Microsoft.XMLHTTP");   
            } catch (e2) {   
                try {   
                    req=new ActiveXObject("Msxml2.XMLHTTP.4.0");   
                } catch (e3) {   
                    req=null;   
                }   
            }   
        }   
    }   
  
    if(!req && window.createRequest)   
        req = window.createRequest();
    
    if (!req) alert("Il browser non supporta AJAX");   
  
    return req;   
}   
  
// l'oggetto per comunicare con il server   
var http_req = crea_http_req();   
// invia i dati del form al server   
function invia_dati() {   
	
	var dati_post = "el=" + encodeURIComponent( document.getElementById("el").value);
   
  
    http_req.onreadystatechange = gestisci_risposta;   
    http_req.open('POST', url, true);   
    http_req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
    http_req.setRequestHeader("Content-length", dati_post.length);
    http_req.setRequestHeader("Connection", "close");
    http_req.send(dati_post);
}
 
questa questo codice funziona alla perfezione, questo sotto invece in mozzilla firefox 2 va in IE 6 e IE7 no...
	codice:
	// recupero e gestisco la risposta inviata dal server   
function gestisci_risposta() {   
    if(http_req.readyState == 4) {
    	if (http_req.status != 200) {alert("ERRORE NELLA TRASMISSIONE DATI!" + "\n\nreadyState:"+ http_req.readyState +"\nstatus: "+http_req.status + "\nstatusText: " + http_req.statusText + "\n\nheaders:\n"+ http_req.getAllResponseHeaders()); return;} // ho aggiunto questo ora grazie a Pietro09  
        
        var esito = http_req.responseText;   
        var message = esito;
        switch (esito) {   
          case '1': 
            document.getElementById("output").innerHTML = message;
            // etc.
            break;   
  
          case '2':
            document.getElementById("output").innerHTML = message;
            // etc.
            break;
  
          case '3': 
            document.getElementById("output").innerHTML = message;
            // etc.
            break; 
  
          case '4': 
            document.getElementById("output").innerHTML = message;
            // etc.
            break;   
  				
          case '5': // Dati inviati a email
            MostraMenu(); 
            document.getElementById("output").innerHTML = message;
            // etc.
            break;
  				
          default: // Nessuna risposta
            document.getElementById("output").innerHTML = message;
            // etc.
            break;
        }   
    }   
}
 
non riesco a capire il perchè!