CSS is not obvious to new programmers, but there are excellent books and online references. There are good uses for tables, but once you get the hang of CSS it's pretty easy to break pages up into blocks controlled strictly by CSS.
Firebug for Firefox is an outstanding debugging tool; I've never had any trouble tracking down and fixing CSS bugs in pages I'm responsible for, including pages I didn't write.
As for web designers who write unnecessary complexity, that's a problem with programmers of many systems. I don't know if it's sloppiness, laziness or showing off coding skill, but it's a curse on much of computing that long predates the Web.
Keep Up with TechRepublic