ecco perché non capivo...
due strade: o prendi tutto il record set (ordinato) e conti gli elementi finché non trovi lo id_user, o, dato il punteggio dell'utente conti quanti ne ha davanti. nel secondo caso, aggiungi al codice:
$query = "SELECT COUNT(*) as position FROM `#__tabella_punteggi` WHERE `punteggio` > {$row->punteggio}";
$db->setQuery( $query );
$row = $db->loadObject();
ovviamente la posizione è $row->position + 1.
il secondo metodo è preferibile se vi sono molti utenti. anche in questo caso non è necessario ordinare la tabella, ma sarebbe meglio se punteggio fosse un indice.
ps: a seconda della versione di mysql potresti fare anche una sola query.
ciao,
marco