IE 5 and 6 can't understand Min and Max width.
I've seen this way of achieving min and max width in IE here. The problem is that when you use a standard Doctype this no longer works. Looking through the comments and after a bit of playing around I have concluded this:
Basically, (as I understand it) when you put the browser into standards mode (strict) it changes the way it views the DOM tree. The problem (please correct me if I'm wrong) is that IE 5 in Strict Mode views the DOM tree differently to IE 6 in StrictMode.
Using this works for both (kind of).
The simple solution then is to have 3 style sheets - 1 with everything in it as if there wasn't a problem (so use max-width) 1 with just the IE5 expression and 1 with just the IE 6 expression.
This is done like this (in the xhtml):
As only IE understands the <!--[if IE 5]> bit only IE sees this so the code remains valid.
Obviously this is a bit of a hack. However, I think it's an OK one. IE doesn't support max-width, (although IE 7 will) so this is specifically for that one browser with one expression - very easy to track and when IE 7 comes out it will see the good style sheet. I quite like the way the "hack" is kept separate to the rest of the valid CSS. Also the CSS validator ignores it.
The only other problems are that this won't work with JS off and on IE Mac.
There appears to be a bug in IE where using these expressions results in the print style clipping the edge of the page. - Really not sure why IE would see the "print" style sheet. The simple solution is to use "width: 100% !important;" in the print style sheet for whatever element you are using the expression on.