I admit it, I'm in an abusive relationship. I've been developing web stuff for 15 years now. I started off writing HTML in notepad. The best worst thing that has ever happened to me is Cascading Style Sheets, or CSS. The blog you are reading now is pretty much done completely in Style Sheets (minus some controls that I have no control over that spit out tables). I can change the look and feel without changing any of the underlying structure of the site.
Well, that's bullshit and I know it. To get CSS to work properly, you have to have convoluted <div> tags all over the place. CSS doesn't live up to its hype of decluttering your markup and moving the look to a completely different file / area. And even when you do reach that nirvana of having each element wrapped only in a single block level element, your CSS becomes a series of hacks or confusing code where you have to mangle a block to try to get it to line up in 70% of the browsers.
Or you could use tables since they work.
That's my problem. I want to be a purist. I want to use CSS so that everything is how it should be. And I end up fighting a layout because the inclusion of an <h1> tag pushes the $#&*ing box down (unless I use border:1px solid black, then it lays out differently).
The other problem with CSS is that it doesn't work as well with fluid layouts. You have no clue how people size their browsers, and CSS can get tricky when you don't know the sizes as well.
Don't get me wrong, CSS is wonderful. For an example of how cool is can be, go look at CSS Zen Garden. As you cycle through the designs, understand that the only thing changing is the style sheet. The HTML markup doesn't change at all (the content changes for the design list).
I'm working on several projects right now, and I hate the fact that I probably will end up with a hybrid design. I see some design companies state that if you can't do it 100% CSS then you need to find a better design company, but that's elitism to the nth degree.
I love CSS. I also hate it. And the whole concept of a browser being the way to view the web is utter horseshit. But it's what we have for the time being.
Update from Kevin in the comments:
If I didn't already have enough coffee mugs, I'd get that one.