I believe IE doesn't handle the xhtml header correctly because it doesn't actually understand xhtml & treats it as plain html. One workaround is to serve text/html content-type if the Accept request headers don't include xhtml... though this is obviously not ideal. Try googling for IE xhtml.
You will need to do browser detection, and serve an alternative page, if you want it to work on PC browsers.
As a practical matter, you need to do browser detection, as well, to look good on a mobile device - right down to the specific model of phone. There are too many variations, and a small number of precious pixels, and you need to make the most of them.
One problem that will be increasing is that there is an increasing number of phones with a horizontal-format screen.