Вы должны установить начальное значение backgroundPosition в IE, иначе это не будет работать, потому что он не знает, как анимировать.
также я бы изменил mouseover и mouseout, чтобы иметь одинаковый стиль, не используяпривязать один и использовать указатель мыши на другом, как в моем примере
, например:
$("#menu li > div").css({
backgroundPosition: "0px 0px"
})
$("#menu li").mouseover(function() {
var div = $(this).find('div');
div.stop().animate({
backgroundPosition: '25px 0px'
}, 500);
}).mouseout(function() {
var div = $(this).find('div');
div.stop().animate({
backgroundPosition: "0px 0px"
}, 500);
});