bon, ma quello è ovvio! ti allego un esempio di quello che succede (ho commentato !important)...però al momento non va nemmeno su Firefox, prima però si...bo!...purtroppo non riesco più a ricreare le condizioni iniziali
o forse era Firefox che non mi aggiornava la cache. Fatto sta che nella mia testa è un comportamento un po' anomalo; in ogni caso se tutti i browser si comportano allo stesso modo taccio e uso "!important" per far funzionare il tutto come garba a me! 
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS e Javascript</title>
<style type="text/css">
#test{
margin:100px auto;
background:#00CC99;
text-align:center;
width:50%;
}
#test:hover{
background:#FF9900 /*!important*/;
}
</style>
</head>
<body>
<div id="test"><span>i CSS hanno</span> la priorità</div>
<script type="text/javascript">
function t(){
test = document.getElementById('test');
test.style.background = '#9999FF';
test.firstChild.innerHTML = 'JAVASCRIPT ha';
}
setTimeout("t()",3000);
</script>
</body>
</html>