scusa... ecco qui: ti posto un esempio funzionante (almeno su opera e firefox)
A te il compito di provarlo con IE

codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>

<script type="text/javascript">
function setOpacity(obj, op) {
   if (op == 0) op = 1; 
   if (obj.filters) obj.filters.alpha.opacity = op;
   obj.style.opacity = (op/100);
}

function getOpacity(obj) {
   return (obj.filters)? obj.filters.alpha.opacity : (obj.style.opacity * 100);
}


function nereidFade(object, destOp, rate, delta){

    curropacity = getOpacity(object);
    diff = destOp - curropacity;
    direction = (curropacity > destOp)? -1 : 1;

    delta=Math.min(direction*diff, delta);
    setOpacity(object, (curropacity + (direction * delta)));

    curropacity = getOpacity(object);
    if (curropacity != destOp){
        setTimeout(function() {
            nereidFade(object, destOp, rate, delta);
        }, rate); 
    }
}
</script>


</head>


<body>
    [img]file.jpg alt=[/img]

</body>
</html>