bug: error de un navegador... por ejemplo, si tu pones que queres un borde de 1px de ancho y el navegador te lo hace de 2px, eso es un bug
hack: forma de usar un bug o una caracterísitca exclusiva de un navegador, para arreglar otro bug de ese navegaor. No son muy recomendables de usar porque (además de que afean y vuelven más complicado de manejar el código) al basarse en un error para arreglar otro error, se pueden dar casos que con las nuevas versiones del navegador el error en que se basaba el hack para funcionar, no funcione más (o viceversa)
hasLayout: esto es medio complicado de entender si no tenes mucha experiencia pero es la clave de la mayoría de los problemas de IE,
aquí lo explican bastante bien... básicamente es una propiedad "invisible" que existe en los IE (y que se aplica a cada elemento de forma individual), que se puede "prender" con algunas propiedades de CSS... el problema con hasLayout es que hay algunas propiedades de CSS que no funcionan o funcionan de forma diferente si el hasLayout está "apagado"
Modo Quircks: principalmente existen 2 formas en las que un navegador puede interpretar el CSS/HTML. en modo estándar y en modo quircks (modo de retrocompatibilidad). El navegador usará uno u otro método
según el doctype que uses (por ejemplo, si no usas doctype, todos los navegadores usarán quircks). Especialmente en IE 6
hay muchas diferencias (
otra tabla comparativa) entre usar un modo u el otro, y hay muchos bugs que se activan si se usa el modo quircks.
Comentarios condicionales: a mi juicio son la mejor forma de solucionar los bugs del IE.
Los CC permiten cargar un archivo css adicional solo a los navegadores IE que cumplan X condición... no se trata de duplicar el css, sino solo agregar un css con las diferencias o correciones que quieras hacerle al IE. De esa forma, si tienes 2 archivos css (general.css e ie.css) todos los navegadores te cargarán el general.css, pero el IE además de cargarte ese archivo, te va a cargar después el ie.css
Lo bueno de este método, además de que te permite tener el CSS mejor ordenado al poner todos los arreglos de bugs juntos y separados de tu css general, permite también de una forma fácil discriminar entre versiones de IE
Script IE7: es un javascript que arregla muchos de los bug de los IE 6 y 7, y añade soporte para algunas propiedades CSS que son muy útiles pero que no son soportadas de forma nativa por IE