I think making people aware of better ways of helping charities is good, but there are some things to remember. First is that there is a problem with giving money in that it gets eaten up in salaries and overhead, and people know that their can of whatever is much more likely to get into the hands of someone who could use it than a random $10 check they mail in. Charities of course need to cover salaries and overhead, but small givers prefer the idea that their money is going directly to where it needs to go. Second is that...well...if someone's going to eat your not quite yet expired package of whatever that's been sitting in the back of your cupboard then they probably really need it.
Having said that, charities that provide food for people should educate donors on the best way to donate. They should be transparent, they should raise their salaries and overhead money in other ways, and explain specifically just what a $10 check will be used for. As in, please bring your can of whatever, but also know that with just $10 we can and will buy 100 cans.