You are in a much better position if the contract states that the customer must accept the product if certain conditions are met. The contract should allow for mutually agreeable changes. These changes take effect only if they're in writing and signed by both parties. It should also specify penalties for breach of contract. If the client delays getting necessary information or materials to you, your schedule should slip by at least that amount.
Penalties often involve money, including legal fees if the case goes to court.
Because litigation is so expensive, the contract should state that in case of dispute, the parties shall go to arbitration. Check with a local attorney or arbitration board for recommendations. Retainer agreements commit the customer to pay you a minimum amount each month to be on call. They should cover all aspects of work and payment, because they involve long-term commitments. Ownership of the final product depends on the type of work and the terms of the contract.