I think we're not quite on the same wavelength.
Partitions on HDDs don't have a letter assignment physically attached to the disk, though they do have a label (optionally) like "Vista System" physically written on them if you attach one when formatting.
The letter assignment is an internal construct of the booted OS, and will either be assigned dynamically at boot time (determined by the OS algorithm and the channel connection sequence) or, in OSs since XP, can be set in the registry so that the disks retain their letter between boots, even if the channel connections are changed.
So when you say "Vistax86 on C: and XP on D:" Is that how they
both saw themselves and each other ?
So It wasn't XP that changed letter - It was just that XP saw your new Vista as a letter that you didn't like ?
I think I understand now. That's a much simpler problem. If XP had changed letter internally, it generally is unbootable whereas Vista can just manage to get far enough to let you fix it from within.
btw. Do you use system restore ?
With a Vista/XP dual boot, XP will destroy Vista's restore points unless you've got the MS registry zap to hide the Vista drives (which it doesn't sound like you're doing from the evidence of this thread), or you use something like
HnS to do it dynamically at boot.
Additionally, If you boot XP as D:, and it can see a C: disk, there's a probability that installing software on XP (like anything by Adobe - reader, flash etc), will put some files in C:\Program Files\Common Files, even though you tell it to install somewhere on D:
Since these programs are likely also to be installed on C: by Vista, there's a good chance that execution of these programs will give unpredictable results at times, since they can both update the same files with different data.
Hiding Vista from XP will stop this from happening too.