Già trovato anche il perchè...
Quando si usa IIF vengono valutati tutti i membri dello statement, quindi il copytodatatable andava in exception..
Sapevatelo! (ma voi lo sapevate già di sicuro)