Es el comportamiento típico de explorer, donde this, si asignás los eventos de esa manera, no tiene el significado que esperás. Se soluciona modificando la asignación. Una manera serías esta:
Código PHP:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
<script>
var e = {
addEvent : function ( o, ev, fn ) {
var r = false;
if (window.addEventListener) {
o.addEventListener(ev, fn, false);
}
else if (window.attachEvent){
var f=function(){
fn.call(o,window.event);
}
r = o.attachEvent("on" + ev, f);
}
}
}
window.onload = function() {
e.addEvent ( document.getElementById('pp') , 'mouseover' , function() {
alert (this.tagName);
})
}
</script>
</head>
<body>
<p id="pp">boo</p>
</body>
</html>