Wal-Mart pays crap wages to most of its employees (the cashiers, etc. who do the grunt work) so they can't afford to shop anywhere else. Wal-Mart wiped out the downtown of the small town where I went to college. A lot of those businesses were family-owned for multiple generations and were keeping people in town. One of them was a drugstore that had the original 1930's soda fountain/lunch counter. They couldn't possibly have competed in a price war with Wal-Mart (they were not, however, overpriced considering the scale on which they operated); I bought there anyway because the customer service was so much better than the mass-market approach at Wal-Mart.
I don't have issues with the Salvation Army. I don't agree with them but I know who they are and what their values are, and I often donate anyway because somebody needs the help and, as far as I know, the SA hasn't been funnelling my second-hand clothes elsewhere. I do, however, have issues about Wal-Mart (or any retailer, for that matter) bragging about their prices when they have been accused of short-changing their workers. I work for a low hourly wage myself, and minimal benefits, and find this kind of thing inexcusable. I'm exactly the kind of person to whom Wal-Mart markets itself and I do anything I can to avoid shopping there.