The DC folks had some comments on this a ways back (check the list archives) and the conclusion was that the FTP protocol just didn't have the support built in for Zope's more sophisticated management capabilities.
Two ideas to solve this: Firstly, have top level 'folders' in zope representing each version. Since changes you make lock files to a version no matter where the version object is stored, this makes sense to me, but then I may just not understand the significance of the version object's location. Secondly, doing an ftp 'get' on a version object could make you join that version, while a 'put' on that object, or a closed connection, could make you leave it. The second option is a bit hacky in operation, but probably easier to implement than the first... my $0.02 Chris