The problem with web design (and construction) is that you have to do two things well:
- graphics/layout
- technical design (html vs php vs xml, templates, css etc)
And most people lean toward one side while they neglect the other. My biggest weakness was always the first point. On the other hand, good graphical designers make great designs but build crap websites that are badly coded, not to standard (buggy on other browsers) and perform poorly.