The only thing I don't like about donating through stores is that they get to claim that "they" donated whatever (time, money, food) when really their employees and customers did. But I can see how it's really beneficial for charities anyway, because plenty of people might be willing to buy a $7 bag of food and drop it off on the way out the door than to take food by a church, soup kitchen, or other dropoff point, or try to figure out how to donate.
I've never really thought about this, but my favorite food drive was one a local group, boy scouts maybe?, held one time. They were at the local grocery store, and if you wanted, gave you a list of what was needed/appreciated as you went in, so if you chose to participate, you could shop off the list, or not, and they also had bins outside the exit, where you could drop your donations. They weren't pushy, and if you said no thanks, no big deal.
And I don't know if planned or not, but what they needed also coincided with what was on sale that week! I took the list, and bought some things and dropped them as I was leaving. The only work on my part was bagging them separately from my own stuff!