Fun to see more and more people say this. In a typical development project there are three variables to play with; you can deliver at a certain date, with a certain level of quality or a with a certain number of features. You can guarantee two of these but never all three. Pricing comes into the picture since pricing generally limits the number of hours that can be put into the project. So adding money may shorten the calendar time it takes to complete the project or it increases quality and/or the number of features that can be implemented. Fixed price often goes hand in hand with fixed date but it does not have to be that way. And trading off quality is a big no-no I think since it will backfire.
So the only thing the customer really has to play with is price or features. Either you pay for all you want or you cut the number of features. Think of it as choosing restaurant for lunch. If you really want a steak you have to pay for a steak, but if you only want to spend one dollar you're suck with a taco I guess...
Here's another article on the subject.
Fixed prices for IT projects are unethical is an blog posting with a provocative title. It in turn links