It's a tough balancing act, and one that is hard to avoid. If you work for a long time writing a solid, worthwhile product, you deserve to be paid for it. You should not waste one moment of your time feeling guilty for wanting remuneration for your work, any more than you would feel guilty wanting a salary for your job. However, people usually won't pay you for your software unless you make them. This is not because people are inherently dishonest.
Most people are basically honest, nice, friendly people.
Paying for your product takes work. A customer has to get up, call you, and make the order, or write a check and mail it, and then wait for you to respond. It does take time, and people won't want to do it unless they have to. Customers don't like being made to pay for shareware. People don't go into a CompUSA and complain about being charged for the software on the shelves.