Or you could just use another float clearing method or fake it with height -- I fake it using height a good deal since I don't trust display:table or it's kin as yet for the reasons outlined. I'd be looking at doing whatever it is you are trying to do a different way, rather than waste time throwing browser specific code at it as the answer.
Though as I often say CSS without the markup it's applied to is gibberish, and without seeing the entire layout or at least just the section in question we're guessing in the dark... Though the 'lets shove everything on one illegible line of CSS" routine isn't helping matters much either on figuring out what's going on.
Oh, and being a menu inside a fixed width, the use of EM padding (and probably EM fonts?) is likely going to break your layout on large font/120dpi setups... and probably give you different heights between FF and RoW. (Rest of World)
Also... is #NAVW an unnecessary DIV around it, if so why not set the total width there and then just pad separately (since declaring padding/borders same time as width is something I usually try to avoid in my code), and is there something wrong with the parent of #navW that you can't pick up your width off of that instead?
Basically, I suspect you're over-thinking your solution.