I don't understand very much about hasLayout, but I did just run into a problem where I was using a table for tabular data, but then decided I needed an image in one of the cells and some buttons.
In order to get the image and buttons to line up the way I wanted in the cell I wrapped them in a DIV, in the CSS I set position:relative out of habit for the DIV in case I was to position something absolute inside of it.
By giving the DIV the position it caused the bug in IE7 where that DIV and it's contents would disappear, problem solved by removing the position:relative property.
Thought I would pass along this bit of info so it might help someone else out.