The width of the float and the width of the content (of which both have been set) are not enough to fit horizontally across the space so IE6 drops the text below.
Other browsers let the background slide under the float and repel the foreground content but IE when in haslayout mode moves the whole element below. This would be the same effect you would get in other browsers if you applied overflow other than visible to #block2.
To achieve the effect you want you should move the floated element inside block2 and then change it's right margin to a negative amount to pull it wide where you want it. You will probably also need to add position:relative as IE will hide the overflow portion.