You seem to be missing the point a little:)
You don't supply any hacks to IE9 and you only target dead browsers with known hacks when used in the main stylesheet. You don't supply any rules to browsers that you don't yet know about. That's why you must exclude ie9 from your conditional comments.
I know that one is for IE 5.5 and another for IE 6,
No, the hacks you had are the same haslayout trigger and either will work for ie5.5 and above. However as all your divs in your example have "haslayout anyway then your IE rules are not needed at all. Any block element with a dimension will already be in haslayout mode and no hacks needed.
Are we still far away from an almost perfect solution?
You have three floated columns. It couldn't get much simpler and will work everywhere as long as you add the dimensions up correctly.:)
I would say though that you should only float elements when you have a reason to do so. Your header doesn't need to be floated so I wouldn't float it. Some older browsers have problems where everything is floated.
My layout will always be fixed, width and height
No it won't:) I could resize my text and the whole layout will break.
This is the biggest mistake that beginners make and you must never set the height of your fluid content containers. I can't stress this strongly enough and it's something we see broken daily in the forums. Never use a height for text content and never second guess that your layout will always be that height unless you are going to have it all controlled by multiple scrollbars - which as I mentioned above is a usability nightmare.
Users will have different text sizes and any fixed height containers will see text breaking out. If you must set a containers height and it holds text content then use em height. However you would never do this for your main containers such as floated columns because that approach is doomed to failure form the start.
can I keep that column height code without any compatibility problem with older browsers? I've tested several now.
No you can't
You are worrying about some little hacks that in reality are never going to be an issue (apart from the issues with yours I mentioned) yet you are going to create a layout that will ultimately break for everyone.
You must build a robust layout from the start and keep saying to yourself "What if?"
What if I add more text at a later date?
What if the user resizes the text?
What if ....?
The only use for a fixed height site is for maybe a one-column graphical site that you want centered in the viewport or perhaps for a site that has very little text content. For all other sites you want the content to be allowed to grow.
If your site falls into this category then you may get away with a fixed height site but as you have three columns already then I very much doubt it. If you want to keep a fixed height then make the wrapper a fixed height and set the overflow to auto so the whole page scrolls. Then you can set the columns to a fluid height. This is not an approach I like or would recommend though
Let your content dictate your layout and not the other way around. Keep things fluid and allow for expansion.
Hope that makes sense as it's important to understand what happens next. Always think ahead and you can see the problems before they arise.