questo è un esempio che ho provato con IE7, Firefox2 e Opera9:

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>Pagina senza titolo</title>
    <script type="text/javascript" src="../js/libreria.js"></script>
<script language="javascript" type="text/javascript">
// <!CDATA[

function Button1_onclick() 
{
    //faccio la richiesta alla pagina a.asp che restituisce
    //

Ciao</p><_script language=\"javascript\">alert('pippo')</_script>
    ajax("a.asp", onload);
    function onload()
    {
		//t contiene la risposta
		var t = this.request.responseText;
		
		//execJS esegue javascript contenuto in t e restituisce
		//t senza javascript
		t = execJS(t);
		
        //finalmente metto t 'pulito' dento il div
        $("div1").innerHTML = t;
        
    }
}



// ]]>
</script>
</head>
<body>
    <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
    <div id="div1"></div>
</body>
</html>

codice:
//-----------------------------------------------------
//valuta il codice javascript e restituisce la stringa
//senza codice
//-----------------------------------------------------
function execJS(t)
{
    var p1 = 0, p2 = 0, p3 = 0, p4 = 0;
    p1 = t.indexOf("<" + "script", 0);
    if(p1 == -1) return t;
    
    p2 = t.indexOf(">", p1 + 7) + 1;
    p3 = t.indexOf("<" + "/script>", p2);
    p4 = p3 + 9;
    
    var c = t.substring(p2, p3);
    var s = document.createElement("script");
    s.type = "text/javascript";
    s.text = c;
    document.getElementsByTagName("head")[0].appendChild(s);
    
    t = t.substring(0, p1) + t.substr(p4);
    return execJS(t);

}