Этап подготовки к разработке сайта. Когда оценивать бюджет и заключать договор?
1. Всегда предоставляйте потенциальному заказчику план ваших действий - это может быть иерархический список работ с различной зависимостью между собой в формате таблицы Excel с формулами и условиями (для смены отображения: фон, цвет и т.д) в ячейках.
2. Там, где цена за данный вид работ неизвестна (будет известна после выполнения предшествующих пунктов работ) - ставим нолики в трудозатратах. 
3. Обязательно пишем сноску под таблицей: "ВНИМАНИЕ: работы с нулевой стоимостью выполняться не будут."
4. После этого можно подготовить проект в GanttProject не добавляя туда работы с нулевыми трудозатратами и экспортировать в PDF.
5. Два документа: xls+pdf - отсылаем как ТКП на согласование клиенту и прикрепляем к договору. 
6. При необходимости, модифицируем договор с помощью доп. соглашений для выполнения тех этапов, стоимость которых стала известна и которые необходимы клиенту.По этапам разработки веб-сайта: здесь.
Во всех других случаях - нет смысла работать с теми, кто не хочет работать.
На все что тратится время должно быть оплачено, если оплата прелюдии создаёт ощущение что на этом заказ заверения, то как уже и говорили включать эти часы стоимость после прелюдии. Для типовых задач это явно не проблема.
Как один из интересных вариантов на моменты выхода на разработку тз, анализа, прототипов и т.д подписывать документы о том что заказчик будет работать с Вами а если вдруг он решил ретироваться, то указать на бумагу. Тем самым можно подкрепить ощущение о том что если будет срыв то не будет больших потерь. Ну а далее когда вышли за рамки оплаченной (вперёд или включенной читать как распределенной, в другую часть работы) прелюдии, на основании бумаги 1 переходит к делам или подписывать вторую бумагу что всё ок и брать оплату.