If something has gone wrong, and it is really tough to figure out the reason, try looking at the situation from the different angle. Could it be, that there are two separate and simple problems that play well together in distorting the symptoms?
This has been the case with the Web Deployment Projects failing spontaneously on the CC.NET. Deployment projects do really fail under VS 2008 under some weird circumstances (that's the first problem), but the real cause was simple build timeout on the integration server (second problem).
And I've got way too carried away by the complexity of the first problem (and ease of reproducing it locally) and didn't even check server log (CC.NET separates build logs from the server log, which holds higher-level messages) for some other hints (i.e.: "Process timed out:...")
That was a good lesson.