Ho provato una pagina di prova e sembra che funzioni con IE7, Firefox2 e Opera9.

La pagina ha due pulsanti: il primo richiama ajax con del javascript, ed il secondo, una funzione presente nel javascript importato.

Allora, il secondo pulstante fa:

function Button2_onclick()
{
prova1();
prova2();
}

dove prova1() e prova2() sono due funzioni importate tramite ajax:
(con asp)
Response.Write("x<script>function prova1(){alert('Questa è una prima funzione');}</script>z<script type=""text/javascript"">function prova2(){alert('Questa è una seconda funzione');}</script>u")


il primo pultante che richiama ajax fa:
function Button1_onclick()
{
ajax("?ajax_comando=1", onload);
function onload()
{
var t = this.request.responseText;

t = execJS(t);

$("div1").innerHTML = t;
}


}

come vedi, recupero la pagina inviata e lo metto nella variabile t.
Poi, con la funzione execJS, faccio leggere il javascript dal browser, e, finalmente, tutta la pagina, tranne gli script sono messi nel div di id div1

la funzione execJS fa:
//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);

}