Right, I might be going completely wrong on this, but I have been doing what seems (and I thought was, but it was the only way I would find to do it) to be a cardinal sin - declaring block-level elements as inline, and vice-versa. I can't remember exactly what I was doing, but I haven't been over-using this, it's only been for specific applications. I was going through some training materials and the "run-in" attribute was mentioned, and this seemed to be the right thing to use instead of, for example, declaring a block-level element as inline so the succeeding objects run along side it. However, this still (the CD mats were using IE 5.5 so they were made a while ago) doesn't seem to be well supported, am I correct? In this case is it a case of "Needs must when the devil vomits in to your kettle, Baldrick" and though not ideal, if there isn't any other way of doing things you need to resort to block<-->inline declarations? (As I mentioned, I can't remember what it was, exactly, I needed to do, but that was my last resort).
In case anyone wants to read some answers to this question, they can be found here: http://csscreator.com/node/36815 Though the poster in that link is not the same person as Paul here. This is a copy post. But I figured it was an interesting question and the answer should be available here as well.