I have a slightly different take to all the answers here.
I've been a software developer for over 10 years now, and I very rarely get any requests like this anymore. How? By adopting a couple of simple methods.
- Say yes, of course I'll take a look, but I'm really busy until <some date in the future, normally 2 weeks will do it><some date in the future, normally 2 weeks will do it>.
Or, as alluded to in some of the other comments...
- Depending on what they do as a job, say yes then in the same sentence ask them to do something for you. My favourite ones have been plumbers (yeah, I can give your laptop a look, bring it round and while you're here, would you mind taking a look at my boiler? It's been making funny noises...), designers (yep, I can help you move your files from your old Mac to your new one, in return, a friend of mine needs a website designed...) and family members (ok, but it'll take a few hours, I can come round and set up your TV / computer / iPad, I'll be round at <whatever time you know they normally eat dinner>.
The general idea here is to make them realise that your time is not free. Most people value their trade more than others because it's what they make their living doing, so when you suggest that they carry on their work day in return for you helping them with something, the majority of the time they suddenly figure out how to do things for themselves.
This is a gamble because some of the time, that plumber or designer is going to say ok, and you're going to have to figure out how to help them, but on the plus side, you will get something out of it.
So to answer 1, 2 & 3, you don't need to inform them that you're not their personal technical support, you need to make them realise that you're not willing to do it for free without coming out and saying it. That way, you still seem helpful and you're not bluntly refusing them so shouldn't hurt their feelings (it does depend on how you phrase things, but that's just life)