出現条件を説明するのが難しい。IE6はfloatを指定した要素の親要素にwidth属性を指定するとfloatした要素の高さが親要素に含まれるバグがあります(詳しくはIEでfloat属性を指定した要素の親要素のborderが消えるバグを見て下さい)。このバグが発生している場合に、float属性を指定した子要素が兄要素に指定されているmargin-bottomを継承するみたい。
実際には兄弟要素の属性を継承することはないと思いますが、継承しているとしか思えない挙動です。
IE6でfloatした要素が兄要素のmarginを継承(?)する例
親要素が“parent”、その子要素で“child1”、“child2”、“child3”。
“child2”、“child3”はmargin-bottom:0;を指定しているにも関わらず下に余白が発生。このスクリーンショットのソース
最後にfloatを指定しない弟要素を追加した例
余白は消えている。このスクリーンショットのソース
兄要素のmargin-bottomを指定しない例
同様に余白は消えている。このスクリーンショットのソース
Firefoxの例
Firefoxではこのようなバグはありません。子要素を全て囲むように親要素の背景がある場合など、親要素へのwidth指定は必須だと思われますが(他にもwidthを指定することによって防げるバグがあったと思う)、あちら立てればこちらが立たず、IEは本当に手間のかかるブラウザです。
兄要素(child1)を外に出す、margin属性の代わりにpadding属性を使う、marginの指定要素を変えるなどで対処するしか無いようです。