Galera está tendo bastante dificuldade com isso hoje em dia.

Tenho um modal, que abre pegando um conteúdo com ajax ou não.

O ponto é que os plugins de modal(ou a maioria deles), e também o facebox que é o caso que vou demonstrar agora, reescrevem o conteúdo com js, então perdemos qualquer função atrelada que tínhamos.

Com “Defeito”

Janela Modal FaceBox

<html>
<head>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
  <script type="text/javascript" src="src/facebox.js"></script>

  <link href="src/facebox.css" media="screen" rel="stylesheet" type="text/css" />

  <script type="text/javascript">
  $(document).ready(function(){
    $('a[rel*=facebox]').facebox({
      loadingImage : 'src/loading.gif',
      closeImage   : 'src/closelabel.png'
    });
  });
  </script>
  <style type="text/css">
  .modal { display: none; }
  </style>
</head>
<body>
  <a href="#modal" rel="facebox">Abrir Modal</a>

  <div id="modal" class="modal">
    Modal <a href="#modal2" rel="facebox">Abrir outro modal</a>
  </div><!-- /modal -->
  <div id="modal2" class="modal">
    Segundo Modal.
  </div><!-- /modal -->
</body>
</html>

Note que clicando no link do segundo modal, oque acontece é que a URL muda para #modal2, e o comportamento de abrir outro modal não é feito.

Por causa do que eu disse, do conteúdo do modal ter sido reescrito com js, então o link:

<a href="#modal2" rel="facebox">Abrir outro modal</a>

não teve o comportamento atrelado.

Precisamos, logo depois de abrir o primeiro modal, colocar esse comportamento nos links lá.

Uma forma elegante de fazer isso, é no callback do próprio modal, rodarmos a rotina:

$(document).bind('afterReveal.facebox', function(){
      $('#facebox .content a').facebox({
        loadingImage : 'src/loading.gif',
        closeImage   : 'src/closelabel.png'
      });
    });

Não fiz nada de anormal, ou super.

Apenas li a documentação, e entendendo o motivo de ter falhado, resolvi.

Demonstração