The other reason to not help in a corporate environment is that you do it once.... and you get stuck with it. It'll be a new responsibility that you've unknowingly taken charge of it. "Oh, you helped us with that script that we run once a month. Can you run it for us instead now? You know how it works better than us. kthxbye."
I got hit with that recently. I do software dev and I was at a different facility pushing out a display board (TV attached to PC) and a staff guy saw me there. Next day, something is wrong with a pc and the guys calls help desk asking for, "That asian guy". -_- And about business not knowing things about tech, they ask for changes that appear simple on the UI but will take quite an effort on the backend due to them asking for basically core infrastructure changes and they expects it to be done yesterday. They think that code is generated magically and things can be photochopped together. Ugh.
IT is (or should be) a service organization. We are trained to help whenever we can - HOWEVER - sometimes you have to manage the users. So, for example, when you get a call or a drive-by support request that is out of your area of responsibility, you can try saying: "Oh, OK, you need the IT Helpdesk, I'll forward your call and they should be able to help you." If you are surly about it, it is bad for IT, but if you are pleasant and nice about it, then it looks like you are genuinely trying to help - even though what you are really doing is kicking the idiot over the wall to someone else!