I've been trying to figure out what to do with panhandlers and people who ask for money. It's absolutely wrong to brush by and ignore them (cf. Mt. 25:31 ff), but handing over $5 probably means enabling an addiction or bad habit, and that's also wrong. Some people say "take them out to lunch" but most times I honestly don't have time for that. (Plus it can't really help that much.) Some people tell me "you're in college and you don't really have extra money" but cf. Mark 12:41 ff.
Here's the thing, though. My time isn't really "my" time -- I've already pledged it to my employer. Maybe feeding the hungry is objectively more important than the particular task I've been assigned, but I owe to my employer that I obey him and that I give him the time I promised to give him. If he sends me on an assignment, I have to do that assignment (unless it's specifically immoral). So no, I really, actually don't have time to take someone out to lunch because the time isn't mine anymore.
Same with money. I owe it to my parents to finish college, and I actually do need to buy my textbooks. Maybe feeding the hungry is more important than memorizing declension patterns, but that isn't my decision to make. It isn't "my" time that I spend studying, and it isn't "my" money I'm spending on books. I owe it to my parents to buy my books, and therefore the money isn't mine to give away.
I think the best thing to do is to know where these people can get help, and smile and point it out to them. "Sorry, ma'am, I can't actually give you any money, but if you go to [street] and [street], the people there can help you" or "Sir, I can't give you any money, but here's the phone number of [whatever mission]. Give them a call; they should be able to help you."
A man holding his hat out is still a man and we ought to treat him as such. But we should also recognize (with humility) that we are human and limited in what we can do. I can't solve all the world's problems; I can't solve all this man's problems. But I can point him to people who can help.