La respuesta exacta es "nunca". Puede citar o \escapar algunos caracteres especiales como "" o ";" en cadenas (caracteres que harían ambiguo el significado de una declaración), entonces
add_header X-MyHeader "Test String;";
funcionaría como
add_header X-MyHeader Test\ String\;;
En realidad: solo use comillas :)
Editar: como a algunas personas les encanta criticar: la lista no necesariamente completa de caracteres que puede hacer que una declaración sea ambigua es según mi comprensión de la nginxsintaxis de configuración:
<space> " ' { } ; $ \
y podría ser necesario escapar $e \incluso en cadenas citadas para evitar la expansión variable.
Desafortunadamente, no puedo encontrar una lista completa y autorizada de tales personajes en los documentos.