Bueno por si a alguien ayuda he dado con la solución (con javaScript para que que funcione en IE también). Se me ocurrió usar la función "setInterval" y el resultado es bastante bueno.
Código:
<html>
<head>
<script language="javaScript">
window.onload = function() {
setInterval( posicionar, 500 );
}
//--------------------------------
function posicionar() {
document.getElementById('midiv').style.top = document.body.clientHeight +
document.body.scrollTop -
document.getElementById("midiv").style.height.replace("px", "") -
20;
document.getElementById('midiv').style.left = document.body.clientWidth - 55;
}
</script>
</head>
<body>
hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>
hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>
hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>
hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>hola<br/>
<div id="midiv" style="
position:absolute;
top:10;
height:50px;
background-color:red;
">
HOLA<p/>
<input id="boton" type="button" onclick="
alert( 'offsetTop -> ' + document.getElementById('midiv').offsetTop );
" value="click" />
</div>
<body>
</html>