Emo Phillips. "At my lemonade stand I used to give the first glass away free and charge five dollars for the second glass. The refill contained the antidote." [Quotes of the Day]
Is this how you treat customers who buy your products? You would (maybe you wouldn't) be surprised how many large companies sell inferior products, just so you have to buy the fix. Think about the software industry.
In the commercial software industry people often buy products that are only usable if they buy more memory, or even the upgrade a few months after the purchase. It's like the disappointment your children would feel receiving holiday gifts without the necessary batteries to operate them. While this generates great profit for your business and its partners, it's bad for the customer relationship.
How do you avoid this type of annoyance?
Sell whole products. A product should function as described without having to purchase additional components. Set realistic expectations for customers with products generally free of bugs. (This goes for services too)
Disclose product requirements. If your product requires other components to get the desired result, then disclose those elements before consummating a sale. When customers purchase products they aren't ready to use, they become frustrated. (Your product life cycle diagrams help map this.)
Make products easy to upgrade. Allow customers to buy your product in increments, then make it easy for them to move to the next level. This is useful when you offer gradients of service (i.e. economy, regular, deluxe), but can be practical for any product with upgrade features.
Build enhancement into price strategy. Don't punish customers for upgrading, offer discounts for those who own the lesser product. This strategy encourages the upgrade and improves profitability. Prices should reflect different product options, be easy to understand, and properly disclose all costs to the customer.
Solve real problems with each purchase. When a customer buys from you, make sure they get everything they need to solve the problem at hand. Don't leave room for surprises, help the customer understand what they realistically need and help them get it all in one transaction.