La "mia" soluzione e` una bozza molto grezza, per cui e` molto semplificata rispetto ad una soluzione reale.

E la mia soluzione prevede che l'offuscamento della pagina sia generato da un evento JS (non avrebbe senso altrimenti). Pero` la finestra opaca e la finestrella con il messaggio devono essere presenti prima dell'evento che li fa visualizzare (indicativamente essere caricati assieme al resto della pagina - con eccezioni in caso di uso di AJAX o sim). Quello che eventualmente si puo` modificare e` il testo contenuto nella finestrella, ma questo esula dagli scopi di questo thread.

Il codice JS potrebbe essere (esempio che utilizza l'evento click su un link):
codice:
<noscript>Questo bottone funziona solo se JS e` attivo.&amp;nbsp;</noscript>
clicca qui
Occore poi una piccola modifica del codice HTML e del CSS rispetto a prima:
codice:
HTML:
<body>
  <div id="contenuto">
    qui il contenuto del sito
  </div>
  <div id="opacizzato" class="nascosto">
    <div>
      

contenuto della finestra modale</p>
      

chiudi la finestra opaca</p>
    </div>
  </div>
</body>

CSS:
#opacizzato.nascosto {
  display: none;
}

#opacizzato.lovedo {
  position: absolute;
  top:0; left:0;
  width: 100%;
  height: 100%;
  z-index: 20;
  background: url(semitrasp.png);   /* immagine di sfondo semitrasparente */
}