penders - 8:54 pm on Jul 26, 2011 (gmt 0)
Firefox appears to collapse this empty element (your clearing div). It's as if this element is no longer there, so the floated element is no longer being cleared. If you remove this div in other browsers then you get the same result.
The p element then moves up to fill the container and the gap you are seeing is the default top margin of the p, which is why when you set this to 0 the gap goes away.
You don't need to use clearing divs anymore. The same result can be achieved in all modern browsers by simply setting overflow:hidden on the outer container that contains the floated elements. For IE6 you need to make sure the container also hasLayout which can be achieved by giving it width.