[eluser]Colin Williams[/eluser]
Part of being professional, in fact the most crucial part, is demanding professionalism from your clients/employers and accepting nothing less. This involves clearly defining expectations, deliverables and milestones up front and having solid agreements and contracts.
More to your scenario, simply do not start programing until everything has been completely defined and agreed to on paper (this is why wireframing and other forms of documentation are so important).