la butto li' come idea spicciola, se pensi possa essere un buon approccio la sviluppiamo:
richiede flash e script lato server come PHP (e probabilmente anche javascript)
* Usa un oggetto flash per accludere la musica. Esso cerca un cookie chiamato ad esempio "tempoinizio", se non lo trova fa partire la song da 0:00.
* Tieni traccia in un cookie di sessione della timestamp (data e ora del server) a cui la pagina viene caricata. Puoi farlo con uno script PHP nella pagina dove deve andare la song, meglio ancora se il cookie di sessione viene istanziato da uno script PHP invocato da una richiesta GET direttamente da parte dello script in flash (così da essere precisi che il cronometro "parta" quando parte effettivamente la song)
* Tieni traccia di quando l'utente lascia la pagina perché clicca su altri link. Ipotizzo almeno due alternative per questa soluzione:
1. Su tutte le "altre" pagine del tuo sito va in esecuzione uno script lato server che, se esiste il cookie di sessione contenente la timestamp (in pratica la timestamp viene aggiornata quando apri una sottopagina del sito, quindi sembrerebbe poco preciso - e se visiti una pagina esterna al sito per poi tornarci col back la timestamp nn è a stata aggiornata e quindi la song riparte dall'inizio) lo aggiorna alla timestamp corrente e valuta la differenza come spiegato nel prossimo punto.
2. Questa è pura speculazione. Usa uno javascript e definisci un handler per l'evento onUnload che con un po' di AJAX mandi in esecuzione uno script PHP lato server che aggiorni la timestamp
* Aggiorna il cookie "tempoinizio" con la differenza tra la nuova timestamp e la vecchia. Quando ritornerai nella home page, la song dovrebbe partire da tempoinizio e non da 0:00
Così, a lume di naso, dovrebbe funzionare...