Well, this is getting most odd. First, a bit more background...
I migrated to a new PC running Vista 32 bit earlier this year. Prior to that, my old PC was running XP. On the old PC (for various reasons) I used only PSE4 for post-processing. All my image files on the old machine were copied to the internal hard disk using a card reader, ingested into the PSE4 catalogue, and had keywords added. Every file, whether edited or not, was re-written to the internal hard disk by PSE4, then backed-up using XP to an external hard disk.
When I migrated PC's, I copied the folder structure and all image files from the external hard disk to the new machine's internal hard disk. Now I'm running only View NX and Capture NX2, so I didn't migrate the PSE4 catalogue across.
Anyway, whilst playing around and trying different things, I have just found that, if I open one of the same D2Xs files in ViewNX, either add a new keyword or delete an existing keyword, then open the file in Capture NX2, NX2 will save it as normal
I don't understand why doing that with the keywords makes a difference, nor do I understand why files from my other cameras (which all had keywords too) don't seem to suffer the same problem.
So I guess I have a usable workaround, but if anyone has a bright idea about what might be going on and why, I'd love to hear it...!