Static cursor, query is run, result stored in tempdb and then you iterate through it.
So basically it's a readonly copy, no need to synchronise with the underlying data, so no need for locks and such.
Didn't realise it had that much of an overhead, there again I put a lot of effort into not using cursors at all for anything except one off admin tasks.