This won't help you with your current plight, but I had your same problem many moons ago. I had to rescan and manually redo all my read marks (which you may not have to if you follow pkscuot's idea), but it was well worth the effort because now I no longer have to worry about this issue.
What you can do is setup a 'virtual listing' on your %SystemDrive% (normally C: ), I use C:\~\. When I get a new hdd, I name them DataXX and
mount them to a folder path instead of as a drive letter - placing the mount link into C:\~\. This results in a series of folders such as C:\~\Data01, C:\~\Data02, etc. If you migrate data from 1 drive to another, you simple mount that new drive into the same location as the old drive
(and if the folder structure doesn't match exactly, you can use other dummy folders or symbolic links to make your C:\~\ folder structure look the same).
In XBMC, you add sources normally, pointing to your 'drives' in C:\~\. XBMC will no longer care about where your data physically resides, all it needs is the same virtual path.