A contract is an Agreement between the 'client'( you) and the Service provider (Me), about the type of service provided, the price of the service provided and the length of time of the project. It is beneficial to both parties as it lays down clear guidelines and objectives about the agreement that is being entered into. In simple format, it is an exchange of products, my service to you in exchange for payment of money from you.
The current company policy is to charge 50 % of the price as a deposit before commencement of a project and the balance on the date of completion. The website or other Internet product's price can be fixed or based on an hourly rate, this depends on the lifespan of the product and the product itself, aswell as the client's personal wishes. I usually find that sme's and Individuals usually prefer to fix a price before commencement of the project while bigger company's tend to hire on a per hour basis.