Screenhero is a cross-platform screen sharing and collaboration tool, aimed at developers, but useful for anyone who needs a better to share someone else's computer.
After installation, you must set up a Screenhero account (just a matter of entering your name, email address, and a password). You're then able to connect to any other user by entering their email address. If they've signed up and are online you'll both be asked to confirm the shared access; if they haven't signed up yet, Screenhero sends an email with a link to download the software.
As soon as you've connected to your friend's system, a window appears showing their desktop. Unusually, this has two mouse cursors, one for each user, so there's no fighting for "control": you can both move around and click on whatever you like. (A user name under the cursor helps you keep track of who's who.)
Keyboard handling is good, too, with an option to use system keyboard shortcuts - like Mac's Cmd-Tab - on the remote computer.
Built-in text and voice chat tools make it easy to discuss whatever it is you're trying to do.
Connections are encrypted via an SSL-based peer-to-peer TLS scheme, ensuring your data stays private.
What you don't get is the ability to transfer files from one system to the other. This is screen sharing only.
There's also not quite enough control over how your system is shared. If you just want to show your contact something, for instance, you might want to remove their mouse cursor, so they can "look, but not touch". Unfortunately there's no way to do this. Screensharing may be paused with a click, but you can't stop the other person browsing your system.