Well, there seems to be a misunderstanding of what the problem is.
Here's the problem:
In order to get that submenu to show, :hover has to work on the li part, not the "a" part. Now, all browsers except IE6 can get the :hover to work fine. IE6 only :hovers on anchors.
<li><a href="#" class="main-item">Menu</a> <--the li is the parent
<ul class="sub-menu"> <--the ul is a child of li, not of <a>
<li><a href="chefcase.php">Chef's Case</a></li>
<li><a href="chalkboard.php">Chalkboard Menu</a></li>
So, there are various options, and it looks like you picked one already-- PeterNed's CSS hover. For some reason though, it has been given to IE7 as well-- IE7 can hover perfectly fine on its own.
Your .htc file may not be in the proper place on your server, or you may not have given it a MIME type-- and I dunno how to do that, but there's a page floating around teh Internets showing how to do it on Apache and SSI servers. Windows XP got Service Pack 2 which has some security upgrades in it... one of them was not to run a .htc file without a declared MIME type on it. You know this is the problem if an XP machine without Service Pack 2 upgrade hovers fine.