I've been in a startup that used to say yes to every stupid request possible to get a customer and yes, it destroyed the product, because we had some general and generic features available to everyone and a lot of stuff that was very specific and not reusable. This means that even if you get the client, you're raising maintenance and development costs (and probably performance - if it's very specific if/else are your friends) without investing in your product and in future clients, and this is very bad for a business, because the customer owns the product and you don't.
Actually, I believe it's the single worst thing that can happen to a startup - case is, it always happen when who is in charge is not a tech guy but a seller, and the reason is that while costs are hidden to his eyes (developers do weird things in dark rooms) the benefits are high.
Unfortunately, you're gonna pay such decisions sooner or later :)
I think it's important to decide whether you want to be a powerhouse that can do everything, or a very simple tool that does 1 job really well... Or exactly where you want to be between those 2 extremes.
I don't have a problem with turning down small customers that want custom changes, but when that customer comes along that is as big as all your other customers combined, you almost have to agree to what they want.