It's not that you've done anything wrong. The W3C gives no precise instructions for how a definition list is supposed to be rendered by the browser or user agent. Because IE is so widespread, it's always tempting to think of the IE way as the right way, but this is not the case.
I've seen commercial forum software that relies on definition lists, and of course the pages it generates look pretty bad in anything except IE.
The important issue here is understanding what HTML markup is all about -- and it's not about telling a browser how something should look. That's the job of CSS. HTML is a mark-up language that notes the semantic relationships between bits of information. So a definition list is saying "this bit here is a term and this bit over there is the definition for that term".
Therefore using a definition list because it formats something to look the way you want is not a good practice, although there's probably more of this approach on the web than anything else so we've all seen lots of bad examples.
In this case, you've got questions and answers, and that really isn't terms and definitions. I've seen many sites that use definition lists for FAQs in particular, but using them that way implies a relationship between the two parts that isn't true.
And as you've discovered, the definition list is a kind of browser backwater, where there is no standard way of rendering cross-browser.
You can get the visual affect that you're after by using CSS and creating two classes of <p>, one class for the Q and one for the A. And if you want consistent results cross-browser, that's the way I'd suggest you go.