I now send the MIME type based on the HTTP_ACCEPT header instead of HTTP_USER_AGENT, and then specialcase Opera because it chokes on MathML character entities.

I'm reading about XML, and so far, it's really, really interesting.