I don't understand why it would change anything in IE, that style code should make the browsers put a 20px margin at the top [Which is about where the Phydeaux word begins in IE, so it shouldn't change anything in IE. It doesn't add another 20px, it just makes all of the browsers equalize the top margin to 20px. The menu then would be in the same place on all browsers.
Instead of trying to re-write all of the browser detection,
Are you by chance loading different style sheets or different pages? If that's the case then the code needs to be in either all the pages or in the stylesheets being loaded. I downloaded your page and put that style code in the top, then tested the page in Netscape 6, Netscape 7.1, Firebird .07, IE 5.5. Opera 6.05, Opera 7.11, the only ones with a problem are the opera browsers which seem to add the 20px to their particular internal margins. But all the other browsers put the menu in the exact same place [within 1 or 2 pixels] I doubt that this margin issue is something that will change, it's always been an issue as if each browser decided different numbers of pixels to make their automatic margins if none are declared.
Ruth
Ruth