The problem is actually coming from the JavaScript in flatnav.js. There's some code in that file that is intended to make all columns in a submenu the same height:
$(window).load(function(){
$('.flat-nav>ul>li').mouseover(function() {
var x = 0;
$(this).children('ul.column-based').children('li').each(function() {
if(this.offsetHeight > x) {
x = this.offsetHeight;
}
});
$(this).children('ul.column-based').children('li').each(function() {
$(this).css("height", x + "px");
});
// more code...
});
});
It seems that x is being calculated too early in IE8, resulting in a very small height for the menus.
While there might be fixes for that JS. I'd prefer to do the 'equal column heights' in CSS since it works well in your case. Try commenting out/removing the JS above, then add the following to the bottom of flatnav.css:
div.flat-nav ul.column-based > li {
display: inline-block;
vertical-align: top;
float: none;
width: 145px;
}
Try it here: http://jsbin.com/OJiGiQoF/2