Wenn etwas in Opera nicht richtig angezeigt wird, ist es oft so, dass etwas im CSS oder Quelltext nicht stimmt, die anderen Browser das aber einfach überlesen.
Kann sein, dass an irgendeiner Stelle im theme.css ein float von Opera nicht erkannt oder gesetzt wird, ebenso wie die Grenzlinie rechts, die erst bei a:visited oder a:active erscheint, wenn ich das recht beobachtet habe. Leider hab ich keine Zeit, den kompletten Code durchzusehen.
Im CSS steht ".hauptmenu tr" oder so ähnlich, bei Dir ist das Hauptmenü aber mit ul und li aufgebaut, nicht als Tabelle, da scheint viel unnötiges Zeug im css zu sein.
Um Dein CSS mit den Worten eines W3C-Gurus zu beschreiben: It is a mess! 
Entweder alles zum Hauptmenü rauswerfen und neu schreiben, oder eins nach dem anderen langsam wieder einfügen und sehen, ab wann der Fehler auftritt.
Ist grausame Kleinarbeit. Alternativ kannst Du im Netz nach CSS-Code für ein DropDown-Menü suchen, das auf ul und li aufbaut, den einfach einwerfen und Deine Klassen anpassen wie hauptmenu, moduletable_menu, menu.
Ich weiß, ist nicht überaus hilfreich, aber vielleicht weist es in eine Richtung.
So long
Stefan