firefox, comunque ora funziona, ho usato questo metodo:

codice:
/**
 * @author pamput
 */

//Se sono in un iframe...
function iframe(){
	alert("Sono in un Iframe!");
}

//Non sono in un iframe
function NO_iframe(){
	alert("NON sono in un iframe!");
}

//Se sono in un iframe nel mio sito...
function iframe_porprio(){
	alert("Sono nel mio sito...");
}

//Se sono in ospite....
function iframe_NON_proprio(){
	alert("Sono ospite di un sito esterno!!");
}

//Codice di controllo
if (top != self) {
	//Se sono in un 
	iframe();
		
	var su = top.location;
	try {
		//Se da errore è in un iframe esterno!
		typeof(su.href);
	} 
	catch (error) {
		//Se sono in ospite....
		iframe_NON_proprio();
		
	}
	finally {
		//Se sono in un iframe nel mio sito...
		if (typeof(su.href) == "string") {
			iframe_porprio();
		}
	}
}
else {
	NO_iframe();
}
Le rpime quattro funzioni sono solo per gestirmi facilmente i casi. Ho risolto inserendo il try/catch. Comunque ora rimetto il codice che a me non funziona e dimmi se a te va.

EDIT: Mi correggo con IE6 funziona, con firefox non riesce a gestirsi in automatico l'errore.