Cómo ya te dijeron el primer paso es validar pero usar correctamente tanto CSS como HTML (en algunos casos también Javascript) es esencial para el CrossBrowsing.
Yo nunca he tenido problemas con otro navegador que no sea IE, normalmente si tienes un código bien hecho no necesitas más que hacer ajustes en este navegador.
Y de hacks hay varios, no solo CSS sino también en Javascript, pero siempre lo mejor es tratar de usarlos poco. De preferencia usa solo comentarios condicionales.
Saludos