Tous les navigateurs, selon leur ancienneté ou leur degré de conformité aux standards, n'ont pas un support équivalent vis à vis des propriétés CSS : certains reconnaissent les dernières nouveautés en CSS2, d'autres non. Certains présentent des bugs d'interprétation, etc.
Un hack est une technique pour contourner un problème d'interprétation et permettre à un navigateur défectueux d'aboutir à nos fins, soit en détournant une propriété de son usage, soit en utilisant des codes supplémentaires pour pallier aux manques.
Ce genre de "bidouille", est-il nécessaire de le dire, est bien évidemment déconseillée. Il est préférable dans tous les cas, quitte à remanier sa mise en page, d'éviter toutes techniques de contournement.
Le principal avantage d'avoir des standards du web, est justement d'éviter d'avoir "une version Internet Explorer", "une version Opera", et ainsi de suite. Le but est de ne plus avoir à développer pour chaque navigateur en particulier, ce qui est une aberration.
Un autre gros problème des hacks, est qu'ils reposent sur une déficience d'une version de navigateur qui peut être corrigée du jour au lendemain. Depuis 2003, Microsoft appelle d'ailleurs à l'arrêt des hacks au profit des commentaires conditionnels, cependant ceux-ci vont disparaître à long terme dans les versions modernes d'Internet Explorer.