Para fins práticos, todos os servidores DNS verão uma alteração em um registro A em algum lugar entre instantaneamente e o valor TTL no registro A. O artigo da Wikipedia tem uma excelente redação sobre esse assunto.
Aplicativos individuais podem não ver a alteração no TTL devido a caches DNS locais em roteadores, firewalls, sistemas operacionais e aplicativos. Conforme mencionado no artigo da Wikipedia: "Esses caches geralmente usam tempos de cache muito curtos - da ordem de um minuto. O Internet Explorer oferece uma exceção notável: versões recentes armazenam em cache os registros DNS por meia hora"
Uma reinicialização (ou ciclo de energia para roteadores) normalmente libera todos os caches DNS locais, mas obviamente você não pode esperar que todos os usuários reiniciem todos os dispositivos depois de alterar seu registro A.
Se você não pode alterar diretamente seus registros A, qualquer aplicativo que faça as alterações (software do painel de controle, por exemplo) pode apresentar seus próprios atrasos.
Usamos um TTL padrão de 4 horas. Se estamos planejando alterar um registro A, abaixamos o TTL do registro A para 5 minutos (deve ser feito mais de 4 horas antes que a alteração ocorra). Após a alteração, colocamos o TTL de volta em 4 horas. A maioria dos aplicativos vê a mudança imediatamente, mas alguns usuários ligam com problemas e precisam reiniciar.
O artigo da Wikipedia também tem uma boa discussão sobre "propagação": "Muitas pessoas incorretamente se referem a um misterioso tempo de propagação de 48 ou 72 horas quando você faz uma alteração no DNS. ...". Os servidores raiz (não os registradores) controlam o TTL nos registros NS do seu domínio. Você pode ver esses valores TTL por si mesmo com o comando nslookup. No momento, o TTL para meus registros NS no servidor raiz "F" está definido para 2 dias.