Se nn ho capito male era il mio stesso problema, che ho risolto cambiando il nome della variabile dell'oggetto GetXmlHttpObject().....ti lascio il mio script così capisci meglio 
codice:
// AJAX: inizializzazione
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari, IE7
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer 6 e precedenti
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
// AJAX
function menu1(){
var id = document.getElementById('xxx').value;
xmlHttp1=GetXmlHttpObject()
if (xmlHttp1==null)
{
alert ("Attenzione: Questo browser non supporta AJAX!");
return;
}
var url="showMenu.php";
url=url+"?id="+id;
xmlHttp1.onreadystatechange=showMenu;
xmlHttp1.open("GET",url,true);
xmlHttp1.send(null);
}
// AJAX
function menu2(){
var id = document.getElementById('xxx').value;
xmlHttp2=GetXmlHttpObject()
if (xmlHttp2==null)
{
alert ("Attenzione: Questo browser non supporta AJAX!");
return;
}
var url="showMenu.php";
url=url+"?id="+id;
xmlHttp2.onreadystatechange=showMenu;
xmlHttp2.open("GET",url,true);
xmlHttp2.send(null);
}
non so per quale ragione ma in questa maniera i menù mi si aggiornano regolarmente, mentre se uso lo stesso nome di variabile mi si visualizza solo il primo menù....bho!