ТЗ было обязательно. Договор на разработку сайта и без ТЗ - пустышка.
Залог (предоплата, аванс) зависит от проекта и договоренностей, но, как правило, присутствует. Здесь важно, что продавец/подрядчик имел репутацию и не испарился с полученной предоплатой.