lol.. mi rispondo da solo.. non mi picchiate per favore.. :|

guardando il codice.. mi mancava il fatto di interrompere l'effetto precedente e iniziare quello nuovo.. in modo da non aspettare che l'effetto precendete finisse basta aggiungere Mover.cancel(); prima del nuovo effetto e il gioco è fatto

vi posto il javascript aggiornato per maggiore chiarezza
Codice PHP:
window.addEvent('load', function() {
    var 
HLogther = $('highligther'); // Questo è il div che faccio scorrere
    
var ObjContainer = $$('.menu'); // Object ul
    
var ListaLI = $$('.menu ul li'); // Objects li
    
    
var StartMovement 0;
    var 
StartSize 0;
    var 
Mover = new Fx.Morph(HLogther, {duration'short'}); // Setto l'effetto
    
ListaLI.each(function(eli) { // Controllo ogni elemento (mi serve principalmente per il movimento iniziale)
        
if (el.hasClass('active')) { // se ha la classe active (che sarebbe magari la pagina attuale)
            
ListaLI.each(function(telj) { // sommo tutto le larghezze precedenti in modo da avere lo spostamento
                
if (i) { StartMovement += tel.getStyle('width').toInt(); }
            });
            
StartSize el.getStyle('width').toInt(); // prendo la larghezza attuale
        
}
        
el.addEvents({ // Aggiungo l'evento al li
            
'mouseenter': function() {
                var 
movement 0;
                var 
size 0;
                
ListaLI.each(function(telj) { // Stessa cosa di prima sommo le larghezze e prendo la dimensione
                    
if (i) { movement += tel.getStyle('width').toInt(); }
                    if (
== i) { size tel.getStyle('width').toInt(); }
                });
                
//Mover.cacek();
                
Mover.cancel(); // <-- Fermo l'effetto precedente prima di applicarne uno nuovo
                
Mover.start({ // Applico l'effetto
                    
'margin-left'movement,
                    
'width'size});
            }
        });
        
ObjContainer.addEvents({ // Per evitare un minimo sovrapposizione di eventi quando esce dall'ul ripristino il div alla sua posizione iniziale
            
'mouseleave': function() {
                
Mover.cancel(); // <-- Fermo l'effetto precedente prima di applicarne uno nuovo
                
Mover.start({
                    
'margin-left'StartMovement,
                    
'width'StartSize});
            }
        });
    });
    
Mover.start({ // Questo mi serve quando viene finita di caricare la pagina
        
'margin-left'StartMovement,
        
'width'StartSize});
});