Rispondo con 8 anni di ritardo, ma mi sorprende che nessuno ci abbia pensato:
select * into #MyTempTable from...
where 1=2
IF -- CONDITION HERE
insert into #MyTempTable select...
ELSE
insert into #MyTempTable select...
Semplice, veloce e funziona. Non è necessario SQL dinamico