I have been develloping HTML/CSS with several designers and as already stated, there is no "silver bullet". The designers I have worked with didn't know much (nothing) about html/css. Some of them had some experience in webdesigning and I must say when they have that knowledge, it always ends up with easier to develop and "better website" especialy when responsiveness an UX is involved.
I guess what some companies looking for a website don't know/ignore is : anybody can say he is a graphic designer/webdevelopper/webdesigner/UI designer with basic knowledge (or even none, yes I have seen that) in either. Whereas "real ones" can go the extra mile and produce maintainable, effective websites. I try to "educate" the client and explain that Webdesigning involves skills that "print only" graphic designers don't have. When this works I usualy send the client towards designers I have already worked with and have a common workflow with.
This said, it often happens for many reasons that you end up building websites with people that have graphic skills and no webdesigning skills. In this situation, the best way I have found to save coding time and not end up with a undevellopable layouts is to be involved in the design process and communicate with the designer and explain what you can/cannot do and what would be simpler/better from your point of view.
Although this can be difficult to organize in some situations, it is capital to explain to the client and the designer that "if you think webdesigning form the bigining of a web project you end up saving time, money and headeachs" and that you will be happy to take part in the designing process to save that time money and headeachs.
This is the worflow I try to follow in most projects :
- The designer builds graphic standards if they don't exist (I usualy don't get involved here. I just try to hint the designer towards web compliant fonts ex: google fonts)
- Mokup made by the designer. I get involved here and work with the designer to build web compliant layouts (especialy for responsive ones) before the client sees it.
- client validates mokup
- I code the mokup
The time I have spend communicating and working with the designer is saved during the coding process and this ends up with simpler, more maintainable and neatter code.
This doesn't save you from a happy designer calling you on friday evening with a very pretty mokup that the client has seen and now wants with this sentence : "Hey pall, could you code this for me, deadline is ... yesterday!" Then the whole theory falls apart and if you are looking for work at that moment, you're good for a headeach all week end.
I don't think this is very different than any code related on not project, the best way to work with other people is to communicate with them.