1) Сразу не вникая очень глубоко на основе предыдущего опыта можно назвать заказчику примерные рамки цены от ... и до ... и если заказчика этот диапазон устроит, то можно продолжать разговор. Некоторые на этом этапе отваливаются, это воздухогоны, у которых денег нет, а ходят по базару и просто прицениваются. Или же спрашивать у заказчика бюджет проекта, на какую сумму он рассчитывает, тогда думать только в пределах бюджета.
Т.е. смысл в том, чтобы на самом первом этапе отсеять все пустышки, чтобы не тратить на них свое время.
2) Для тех кто не отказался, нужно делать бриф и список функций или модулей и считать уже более точно ценник. На этом этапе можно договариваться с заказчиком Цена +/- 10% на непредвиденные ситуации. Обычно здравомыслящие заказчики понимают, что проект оценить на старте до копеек невозможно. Уже можно делать договор и просить предоплату.
3) И когда уже все будет до мелочей расписано, тогда уже можно смотреть, и если сильно ошиблись не в свою пользу, то либо разговаривать с заказчиком и менять цену (доп. соглашение к договору), либо отказаться (в договор надо забить пункт для варианта отступления).
Для заказчика все должно быть прозрачно и желательно не просто называть ему цену, а подробно расписывать калькуляцию, что делается и сколько стоит. Так заказчик будет уверен, что его не обманывают, а если жалко денег, то отдельные пункты он может не делать.