Here are three people, all of whom end up perfoming the same action. Which is, morally speaking, the best?
A: Shopkeeper A is motivated solely by making money. He reasons that if he treats his customers fairly and is nice to them, they'll become repeat customers, recommend friends, etc. So he treats them fairly and is nice to them.
B: Shopkeeper B just gets a kick out of making people happy. It makes him feel good to make other people feel good, so he treats his customers fairly and is nice to them.
C: Shopkeeper C hates people. Also, he likes money, and is constantly tempted to cheat his customers. And maybe to kick them, too, because he'd like it if they experienced pain. But he knows that this would be morally wrong. So he treats his customers fairly and is nice to them, because it's his duty.
I take it everyone will agree that A is less good than either B or C. But which of B and C is better?
The essence of the question is whether it is better to do good from inclination or from duty. Now, I don't know a huge amount about the history of ethics (so I'm probably grossly oversimplifying things, and I could be just plain wrong), but it seems to me that this is the essential divide between two distinct ethical traditions:
On the one hand, you have the Aristotlean notion of the "Good life", taken up by modern Virtue Ethicists, which focusses on moral character. By this conception (which I share), Shopkeeper B - who genuinely enjoys helping people - is the best of the three.
Alternatively, the Christian/Kantian tradition focusses on abstract obligations, and obedience to moral "rules" or "duties". This sort of view (which I detest) would imply that Shopkeeper C is the most moral, due to his selfless adherence to that which is morally required.
This scenario reminds me of one James Rachels described, which forcefully advocates inclination over duty. Imagine you are sick, and lying in hospital, when a friend comes by to visit. His visit cheers you up, and you thank him for coming, but he replies "oh, I'm just doing my duty" (perhaps he is a utilitarian and worked out that he could do nothing more productive with his time). At first you think he's just being modest, but further probing suggests that he really means it - he doesn't particularly want to see you, he just felt compelled to visit out of an abstract sense of obligation. Surely in this scenario, we feel that the visit of the "friend" has lost all its value?
Rather than being a perfectly virtuous moral agent, it seems to me that an uncaring, robot-like obeyer of duty is morally bankrupt. (I even have doubts as to whether Shopkeeper C is any better than A.) Having genuinely good desires strikes me as far better than merely acting morally out of duty. I'd choose Shopkeeper B any day.