Personally I deprecate ie8 on back because of it's lack of support of what is actually very good about html5 and css3. If you want good to come out you have to encourage the good within, not continue to embrace the bad. That's no excuse, just personal perspective. Especially since Chrome works on XP SP3 and takes 20s to install. With ie6-8 the display property gets tedious.
Try this....
Head:
<!--[if IE 8 ]> <html lang="en" class="ie8"> <![endif]-->
CSS:
.ie8 #menu a{display: inline-block;}
You could also just put everything in my css call after the ie8 class into the target tags in the head call and remove the class from the html tag, but this way is best.
You may also need to set a width and height for the "a" tag. You could also try doing the same for the "li" tag. Those are the 3 styles I would mess around with between the 2 tags.
Let me know if this works.