Dependendo do mecanismo de banco de dados que você está usando, pode haver limites no comprimento de uma instrução.
O SQL Server tem um limite muito grande:
http://msdn.microsoft.com/en-us/library/ms143432.aspx
ORACLE tem um limite muito fácil de alcançar do outro lado.
Então, para cláusulas IN grandes, é melhor criar uma tabela temporária, inserir os valores e fazer um JOIN. Ele funciona mais rápido também.