Hola Wikki,
Como comentabas que las imágenes tenían anchos diferentes deberías asignarlos individualmente. Aquí te dejo el código para que veas que funciona y hagas tus pruebas.
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es-es">
<head>
<title>Rollover con cambio de posicion del fondo - Recursos CSS - araudi.net</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
.caja {
margin: 0 auto;
position: relative;
width: 261px;
height: 44px;
}
.caja ul{list-style-type:none;padding:0px;margin:0px;}
.caja li{
display:inline-block;
margin:0px;
}
.caja a {
display: block;
height: 44px;
margin-left:-5px;
}
#imagen_1{background: url(imgs/baner01.png) no-repeat center top;width:111px;}
#imagen_1:hover{background: url(imgs/baner01.png) no-repeat center bottom;}
#imagen_2{background: url(imgs/baner02.png) no-repeat center top;width:150px;}
#imagen_2:hover{background: url(imgs/baner02.png) no-repeat center bottom;}
</style>
</head>
<body>
<div class="caja">
<ul>
<li><a id="imagen_1" href="#"></a></li>
<li><a id="imagen_2" href="#"></a></li>
</ul>
</div>
</body>
</html>
Un saludo