While forcing a mitzvah cheapens it and is not ideal, I'd rather exert some sort of pressure on people to do the right thing, when it comes to universal moral issues that aren't necessarily tied to a mitzvah, like providing for the poor.
There must be a way to shun or punish those who rob the poor.
Our money doesn't belong to us. We must give our ten percent (or more).
Unfortunately, using boycotts to force the free market to change with moral wishes of the people is not always possible. Corporations can often agree to do an abusive practice across the board in all of their businesses, making avoiding them impossible.