The problem is not exactly one of passing the session data over multiple domains. The session data is in the directory specified by session_save_path, which as you mention is usually /tmp or some such thing that is easily accessed across multiple domains (as long as they are on the same server, of course).
The problem is identifying the users, so PHP knows which session file to load.
Usually cookies are used to identify the client. But cookies are not cross-domain (for security reasons), which is where the problem lies. So you need to identify the user using a mechanism other than cookies. Then you can load the right session data.
Suppose you have www.example.com and www.example.net, and want to pass users from the .com site to the .net and maintain their session.
On www.example.com, have a link to the other server:
<?php
session_save_path("/tmp");
session_start();
?>
<!-- bunch of html here -->
<?php echo '<a href="http://www.example.net/somepage.php?sessionid='.session_id().'">Go to example.net!</a>'; ?>
Then on www.example.net, somepage.php:
<?php
if (!empty($_GET['sessionid'])) {
session_id($_GET['sessionid']);
}
session_save_path("/tmp");
session_start();
I haven't tested it, but in theory that should work.