Thanks Kovid - I will look at trying to do something along the lines you mention. My first pass will simply be to produce a list of files to be moved as that is a "safe" operation. The actual move can be added later once the list has been validated as being correct.
I will also look at writing the OPF file and it being optional. In practise I would have thought that the performance hit is likely to be trivial for new books as you change the metadata, but making it optional makes sense initially. The performance hit would be in adding it retrospectively but that would only happen once.
Do you want me to try and look at what it might take to add the custom column data to the OPF file or leave that to a later date?
Anyway now that you have said it looks like being useful I will at least start looking at trying to locate where it might be plumbed into the current code!