A contract should be an agreement between both parties, so the client has a right to request changes or additions, as do you. Essentially it's both of you agreeing that this is what will happen, by when and for what cost, so don't be afraid to discuss terms since each contract should be tailored to a specific job. Obviously if you can't settle on an agreement, then you part ways and you both save a lot of headache and stress further down the line.
Be sure to stipulate retention of copyright, especially if you're writing code. Many clients assume they'll own the code to a site as soon as it's done, but it's not the case. One of my clients was actually 'held to ransom' on his site by a developer who wanted £20k to release rights to the code. He was entitled to request a fee of course, but he was only asking so much because he knew my client needed the rights to gain a pretty big investment. In the end they just paid another developer to recode the site and the original guy had to make do with his £4000 original fee and a load of code he had no use for.