Tuve este problema hoy y encontré una solución conveniente, al menos en una situación ad-hoc.
Cualquier usuario con permisos de conexión puede crear tablas temporales. Esto significa que también puede crear tablas temporales GLOBALES.
Simplemente ejecute su consulta en el administrador empresarial (o sql cmd o lo que sea) usando SELECT ... INTO con una tabla temporal global, por ejemplo,
SELECT *
INTO ##mytemptable
FROM SomeTable
WHERE [massive where clause, for example]
Luego puede usar la tabla temporal en la consulta BCP con un simple
SELECT * FROM ##mytemptable
Luego suelte la tabla temporal a través del administrador empresarial
DROP TABLE ##mytemptable