Spinto dalla curiosità ho provato a vedere... Ed ho visto che il codice funziona perfettamente con IE8, Firefox e Opera. Non ho controllato il codice, ma è un fatto che funziona.
Questa è la pagina a.htm di prova

codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>

    <script language="javascript" type="text/javascript">
// <!CDATA[
function getXMLHttp()
{
  var xmlHttp

  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
        alert("Il tuo browser non supporta AJAX!")
        return false;
      }
    }
  }
  return xmlHttp;
}

function MakeRequest()
{
  var xmlHttp = getXMLHttp();
 
  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      HandleResponse(xmlHttp.responseText);
    }
  }

  xmlHttp.open("POST", "a.aspx", true);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlHttp.send("nome=Pietro&nome_amico=Nicola&mail_amico=xxx");
}

function HandleResponse(response)
{
  document.getElementById('ResponseDiv').innerHTML = response;
}


// ]]>
</script>

</head>
<body>
    <form  action="a.aspx" method="post" onsubmit="MakeRequest(); return false;">
        <input id="Submit1" type="submit" value="submit" />
    </form>
    <div id="ResponseDiv"></div>
</body>
</html>
ho solo, per mia convenienza, modificata questa riga:

xmlHttp.send("nome=Pietro&nome_amico=Nicola&mail_a mico=xxx");