Bon, ça n'est pas un problème de CSS. C'est juste la conséquence d'un texte trop petit pour être affiché en gras sans lissage des caractères.
Pour être précis: sous Windows XP, sans lissage des caractères, le Arial bold en corps 10px est affiché comme du Arial regular 10px. Bref, c'est pas gras.
Démonstration:
À l'inverse, avec un lissage des caractères ClearType, même les caractères les plus petits sont lissés (ce qui donne quelque chose de pas toujours très lisible pour les petits textes), et on a donc bien du texte en gras.
Démonstration:
Sous Windows XP, Firefox utilise les fonctionnalités du système pour le lissage des caractères, de même que IE6. IE7 par contre utilise un lissage de type ClearType (ou équivalent), même si ça ne correspond pas aux préférences du système.
Solution: pas de solution. Tu ne peux pas forcer l'utilisateur à activer le lissage des caractères, et encore moins à utiliser ClearType.
À vrai dire, la seule vraie solution consisterait à... éviter d'utiliser du texte en Arial 10px (franchement, niveau lisibilité c'est très moyen).
Au passage, et même si ça n'a rien à voir, tu as un problème avec les images en PNG transparent de ton menu: IE6 ne supportant pas la transparence graduelle du PNG-24, il affiche les images du menu avec un fond gris. Ça se résoudra facilement... en utilisant des images opaques ou du PNG-8 ou du GIF (sur fond uni, pas besoin de transparence graduelle).
Autre chose: il faudrait que tu travailles l'accessibilité de tes images, notamment celles du menu et de l'en-tête. Si je désactive les images, je ne peux plus naviguer sur le site et je perds des informations sur la page. Il faut garder à l'esprit que certains utilisateurs ne verront pas les images (pour différentes raisons pas toujours prévisibles), et que les moteurs de recherche ne les voient pas non plus.