Eh, per pigrizia non l'ho copiaincollato prima.. è parecchio lungo e dovrei "spulciarlo" stando attento a cosa potrebbe in effetti potenzialmente modificare la sessione.
Dunque vediamo che riesco a fare... :master:

Così registro la sessione (questo è tutto il file della registrazione incluso all'inizio di ogni pagina, dopo aver chiaramente avviato la sessione):
Codice PHP:
<?php

$sNICK 
$_SESSION['nick'];
$sUID = (int) $_SESSION['uid'];
$sLEVEL = (int) $_SESSION['lev'];

if((!isset(
$_SESSION['nick']) || !isset($_SESSION['uid']))
{
    
$_SESSION['uid'] = '';
    
$_SESSION['nick'] = '';
    
$_SESSION['lev'] = '';
    unset(
$sNICK);
    unset(
$sUID);
    unset(
$sLEVEL);
}

?>
Questa è la funzione incriminata (nonchè l'UNICA chiamata all'interno della pagina che dà problemi:
Codice PHP:
function getnickfromuid($id)
{
    
$q mysql_query("SELECT `uid`, `nick` FROM `users` WHERE `uid` = " . (int) $id " LIMIT 0, 1");
    if(!
is_resource($q) || mysql_num_rows($q) == 0) return FALSE;
    else
    {
        
$data mysql_fetch_array($q);
        return 
$data['nick'];
    }

E ora arriviamo al "succo"...
All'interno della pagina incriminata c'è un semplice switch su una variabile (pulita) passata con GET (per comodità riporto solo il caso in cui riporta problemi).
I files che non ho menzionato prima (config.php e select_lang.php) non contengono chiamate a funzioni di sessione, ma solo rispettivamente delle variabili di configurazione e il caricamento selettivo del linguaggio del sito:
Codice PHP:
<?php

session_start
();
include(
"session_reg.php");
include(
"config.php");
include(
"select_lang.php");
include(
"functions.php");

$a strip_tags($_GET['a']);
if(
$a == '' || !isset($a)) $a "main";

switch(
$a)
    {
        case 
'user': { include( "/path/alla/pagina.php");
        } break;
}
?>
e infine la famosa pagina inclusa recita così:
Codice PHP:
<?php
$queryj 
mysql_query("SELECT * FROM `users` LIMIT 0, 10");
$numresults mysql_num_rows($queryj);

//Intestazioni per tabella (puro codice HTML) rimosse
while($pic mysql_fetch_array($queryj))
    {
        
$nick getnickfromuid($pic['uid']);
        
//tabella html
               //contenuto celle
            
echo "<A href=\"" $pic['path'] . "\" target=\"_blank\"><IMG src=\"" $pic['thumb'] . "\" alt=\"$nick\" border=\"1\"></A>
<A href=\"" 
$_SERVER['PHP_SELF'] . "?a=profile&id=" $pic['uid'] . "\">" $nick "</A>
<INPUT type=\"radio\" name=\"ch
$cont\" value=\"1\"  checked=\"checked\"><IMG src=\"images/choice_yes.png\" border=\"0\" alt=\"$imlst4\">  <INPUT type=\"radio\" name=\"ch$cont\" value=\"0\"><IMG src=\"images/choice_no.png\" border=\"0\" alt=\"$imlst5\"><INPUT type=\"hidden\" name=\"photo$cont\" value=\"" $pic['id'] . "\">";
        
//ancora tabella html
        //ancora tabella html
        
$row++; //conteggio righe per colori diversi
        
$cont++;
    }

?>
Per dirla tutta, dopo il primo while, la sessione perde le variabili se la funzione getnickfromuid() viene modificata come ho accidentalmente fatto io (vd. post sopra)

Grazie mille per la pazienza le pagine funzionano, quindi eventuali errori nelle variabili o nel flusso son dovute alla fretta o al copia/taglia/incolla selvaggio del momento