Das ist ein Denkfehler - du arbeitest mit einer globalen Variable, welche für die Session registriert wird. Gespeichert werden die registrierten Variablen erst beim Beenden des Scriptes. Wenn du also zwischendurch Änderungen an der Variable vornimmst, werden diese beachtet. Beim nächsten session_start() werden die globalen Variablen, aus der gespeicherten Session dann wieder hergestellt. Du kannst sie wie jede andere Variable auch in den SQL-String einsetzen.
Um Konflikte mit den anderen globalen Variablen zu vermeiden, solltest du allen Session-Variablen einen Prefix verpassen. Also z.B. $sess_user_id.
Die ideale Lösung wäre allerdings ein Upgrade der PHP-Version. So altes PHP (<4.1) sollte man nicht nutzen.
---
Weaverslave