Just sorted one of the nastiest bugs I have ever had...I built a .NET class which was used from Classic ASP, so it too in recordsets then loaded then into a DataTable and fired them across a Web Service to another .NET app. Problem was I got all sorts of strange errors like   "MSDataShape error '80004005'" after the .NET component ran - this also affected every other use of ADO in my ASP application - not good!
What was the error? Well, after 3 days of wrestling with deployment issues, all versioning stuff - hint, if you're going to do this, set all your versions to 1.0 - not 'Best Practice' but saves a hell of a lot of hassle - I discovered it was pretty simple - any guesses?
Well, it so happens that my Recordsets were disconnected - fine, I thought, should be easy to send them out of process...umm...wrong, you see the problem was I applied a Filter to the Recordsets - this was the whole problem! It seems applying a filter somehow makes them unable to be marshalled properly (at a guess) which led to all these strange problems...

Ah well, problem solved now..I thought for a while there this was going to turn out like The Bug in Ellen Ullmans' book