Neil,
> I've thought of chopping this up into two functions or methods, with the first returning some kind of code requesting that the client call the second, passing the 'YES'/'NO' argument, but wouldn't you lose state between the two calls?
If you have designed your DCOM server for scalability, you will be making stateless calls, so yes, you will lose state between the two calls. So you design the second method to receive parameters, which could include an ID that is generated in the first method, which can be used to restore state from a table on the server by ID, or open and pick back up with temp files created by the first server, etc.
This is how most people handle multi-page wizard-style processes in web apps, for instance.