All the major browsers have the ability to download an XML document that has an xml-stylesheet processing instruction, understand the xml-stylesheet instruction, download the referenced XSL file and transform the downloaded XML before rendering it for the user. This means that you have the ability to even more clearly seperate the data from the design when producing web pages - have an XML feed that is the pure data, have an XSL file that transforms this XML file into (X)HTML for the browser to render and then have linked CSS files to apply visual styles to the HTML that is being rendered.
Where this falls apart at first attempts is with the output encodings - specifically with IE trying to render the pages. It turns out that the encoding name that I keep using for everything is actually wrong. I always put an encoding of "utf8" on my xml documents, but the legal encoding name is actually "UTF-8". In every XML and XSL capable program that I've used, this has never been a problem which is why I never realised.
Except for IE of course. In IE if you put in an encoding of "utf8" then you get the dreaded "System does not support the specified encoding" error that doesn't actually tell you anything. To make matters even more complicated, IE as an XML or HTML renderer can handle the name "utf8" perfectly well. It is only IE as an XSL processor that has trouble handling it. In other words, if you don't have an xml-stylesheet PI on your XML file, where the XML file is listed as having an encoding of "utf8" then IE will open it perfectly well, and will even process it with it's built in XSL file perfectly well. As soon as you put an xml-stylesheet PI onto this document, still with the encoding of "utf8" then it just all stops working...
In short - to make sure that your XML and XSL files are going to work with IE, use an encoding name of "UTF-8" instead of "utf8"...