Best answer is to use netmeeting... If you are talking about microsoft systems... It's free, and every system has it.
On remote systems that dial in, same applies.
PC anywhere is great, but comes with a high dollar investment for many machines.
Another option is WIN VNC... free, but you would have to download and install per client.
If it is after hours and you want another free solution... if the user has internet access, you could just tell them to download MSN Messenger,... and give them the MSN usernames of your after hours techs... if there is a problem, they could message them, then the tech can talk them through clicking "start netmeeting session" and solve whatever issues the user is having. Another free solution.
Good luck