1)
Se attivi in php.ini l'apposita opzione, nel caso in cui il browser non supporti i cookie (altrimenti non serve), php passa automaticamente l'id di sessione negli url
http://cvs.php.net/co.php/php-src/php.ini-dist
Altrimenti devi passarlo tu modificando i link e usando il valore che ti restituisce session_id o la costante SID.; trans sid support is disabled by default.
; Use of trans sid may risk your users security.
; Use this option with caution.
; - User may send URL contains active session ID
; to other person via. email/irc/etc.
; - URL that contains active session ID may be stored
; in publically accessible computer.
; - User may access your site with the same session ID
; always using URL stored in browser's history or bookmarks.
session.use_trans_sid = 0
Se si tratta di un'arra riservata ti consiglio di obbligare l'utente a ricevere i cookie
2)
l'id deve essere univoco per ogni navigatore, altrimenti la sessione non sarebbe sicura. PHP genera automaticamente un id casuale univoco di 32 caratteri