Você pode comparar as opções SET para a sessão que está expirando com aquelas da sessão que não está:
SELECT
session_id,
[ansi_defaults],
[ansi_null_dflt_on],
[ansi_nulls],
[ansi_padding],
[ansi_warnings],
[arithabort],
[concat_null_yields_null],
[deadlock_priority],
[quoted_identifier],
[transaction_isolation_level]
FROM
sys.dm_exec_sessions
WHERE
session_id IN (<spid1>, <spid2>);
Quando você encontrar alguns que são diferentes, experimente alterar cada configuração para o oposto em sua consulta do SSMS até obter o tempo limite (ou definir manualmente as opções no código do aplicativo antes de enviar a consulta). Agora, eu não tenho uma instância de 2005 à mão, então não testei esta consulta. Pode ser necessário comentar um ou mais nomes de coluna.