Os portais cativos baseados em IP que vi funcionam alterando ("reescrevendo") o IP de destino antes de passar o pacote; então, nos casos em que o portal cativo é a mesma caixa que o roteador, o pacote é passado para a interface interna em vez do lado da WAN.
No caminho de volta para a máquina cativa (ou seja, cliente), o IP de origem é reescrito, então a máquina cativa acha que está falando com seu destino original. Pesquise on-line pela DNAT se quiser saber mais.
Nota lateral - funciona muito bem para HTTP, mas causa caos para outros aplicativos, como mensagens instantâneas.
Uma solução mais limpa seria operar acima da camada IP: usar um proxy HTTP transparente que emite 301s para máquinas cativas, combinado com a eliminação de todo o tráfego não HTTP proveniente de máquinas cativas, mas o usuário precisa usar um navegador para fornecer seus detalhes de cartão de crédito (ou o que quer que os libere de serem cativos).