good question, really good question, i give you that.
that's kinda problem almost all of us encounter in our daily routines, (not daily but ... )
i don't know about your current job position but it seems you could make decision.
and i'm sure you already know many thing that i want to mention, it's just from another point of view:
Money / Time . base on my experience, Money and Time are you friends.
i could imagine 3 scenario here:
1: if you didn't decided on feature so logically you didn't decided on money either.
and if you talk about money every time they talk about new feature, you are winner. (if it's hard for you, pass it to someone else like financial manager/consultant or someone else so you could get off the hook)
2: you fixed the payment amount, but for some reason your agreement is open ( Customer has higher hand),in this situation cry every time he/she wants to add or change something (and start it at the first step), you should put pressure on him/her too, with what? you hard work, lack of time, other better projects with someone else, i will do this JUST FOR YOU AND FOR YOU NOT ANYONE ELSE, something to mention that YOUR DOING A FAVOR, keep it in mind: IT'S A FAVOR THAT I'M DOING FOR YOU, AND YOU CAN'T ASK FOR FAVOR EVERY TIME YOU WANT
3.your boss hired you, and you are working for a big organization, and they expect you to deliver the product on the schedule and they want to be able to change it's specification every time they want, it's the easy one, increase the time line in front of them every time they come to you (Gantt chart probably)
something like this: OK, it's very good point and we should do that, so it takes 10 day to complete and based on our schedule it will be completed in XXX , but if you want it sooner, we should delay XXX feature, which one you prefer?
and do not forget:
"Scrum is an iterative and incremental agile software development framework"
Don't miss "iterative" part. you decide what to do (base on your schedule, team ability , etc ...) for just one ahead "iteration", when you decided it's good to go, no change is acceptable in middle of iteration. try to put this in their mind.
As product/team manager, you should believe: it's another war for you, Customer is not friend, he/she is an enemy, you should hold him/her back from your base: Defend the base
and you have two sword ,Just two: Time and Money
Attack All the time. Don't stop, even when everything is fine, Be Polite , listen to them and act with justice but Attack in every position, just allow minimum needs to pass from your guard.
"Money is not enough, Budget will increase dramatically, time is not enough, it's not possible to deliver the product on time, why did you want this when we don't have enough time/ money/staff/equipment."
Money And Time:
Use them wisely brother otherwise you are doomed in iterations.
it's about communication skills more than technical abilities.
i took a class long ago to be able to handle these kind of situation.
class title was: "how to be a better negotiator", and it's really helped.