O nginx não processa necessariamente diretivas na ordem em que aparecem no arquivo de configuração. as diretivas de reconfiguração no nível do servidor serão processadas antes da seleção do local, o que explica o comportamento que você está vendo. Como tudo no servidor é apenas uma reescrita, você deve poder usar isso:
server {
server_name www.server-1.com;
rewrite ^/forums?(.*) http://forum.server-1.com$1 redirect;
return 302 http://www.server-2.com/;
}