Если подходить к делу правильно, то процесс следующий:
1. Брейнсторминг на бумаге, продумывание интерфейса и структуры и отображение в 3х вариантах (desktop, tablet, mobile)
2. Разработка модульных сеток (они же wireframes) - Photoshop, Illustrator, Fireworks или сцеп. приложения для сеток и утверждение их клиентом. В 3х вариантах (desktop, tablet, mobile)
3. Верстка голого прототипа по этим 3м вариантам (responsive уже давно стандарт де-факто, а не "бонус").
4. Дизайнер рисует дизайн, четко по утвержденным сеткам.
5. Правки по дизайну, утверждение клиентом.
6. Верстка дизайна, тестирование и отладка, утверждение.
При таком подходе процессы параллельны. Когда есть утвержденная сетка, мы можем работать сразу в 3х направлениях - дизайнер спокойно себе рисует дизайн, в это время верстальщик (он же coder, он же front-end developer) создает голый скелет (прототип) и верстает в него голый контент, а программер (back-end developer) уже может выводить свою часть (динамический контент) в html. Когде же утвержден дизайн, верстальщик этот низкоуровневый скелет начинает "украшать" - добавляются конечные стили (отступы, типографика, цвета и прочее).
Следует еще упомянуть обязательный "шаг 0". Для корректной работы начиная с шага 1 необходимо получить от клиента реальный контент. В процессе шага 1 этот контент вместе с клиентом доводится до ума, финализируется и утверждается. В современной разработке работать с Lorem Ipsum - дурной тон и путь в никуда.
UPDATE:
Еще один бонус - когда сверстан низкоуровневый прототип по сеткам, можно прикручивать его к CMS, и уже с этого момента клиент может наполнять сайт (ну или наш контент-редактор). Часто это бывает очень важно (если контента много).
Из этого всего выплывает:
1. Дизайнер - это дизайнер. Его стихия - графический редактор. Понимание принципов верстки и веб-технологий вообще - обязательно. Умение самому заколбасить что-нибудь на jQuery не обязательно.
2. Верстальщик / кодер / front-end developer - это человек, работающий с клиентской стороной (HTML+CSS+Javascript), переносит картинку от дизайнера в код и прикручивает то, что ему дает программер.
3. Программист / back-end developer / просто web developer - человек, работающий с серверной частью (например, PHP), CMS и т.д.
Это "минимальная конфигурация" Для более сложных проектов работа делится на более узкие направления и появляются профильные люди.