At the very least you are going to have to deal with the fact that the CSS :hover is not supported in IE for any tag except the anchor tag. You'll need to use onmouseover, onmouseout in IE to accomplish the same thing. Or change the li:hover to an a:hover but that would be a bigger overhaul of your design I think.
Specifically, CSS like this:
ul.menu li:hover ul.submenu {
background:white none repeat scroll 0 0;
border:1px solid #A6A6A6;
display:block;
margin-left:-25px;
margin-top:23px;
padding:2px 0;
position:absolute;
}
Is not going to work properly in Internet Explorer. I don't know about Opera.