Hi,
As instructed in other threads, I enlarged my C drive from 2GB to 8GB using the following procedure:
1) make new larger VDI and attach to IDE
2) boot the VM from CloneZilla livecd and clone original VDI partition to new VDI (incl MBR)
3) use gparted to resize the new NTFS partition to full disk
Then I hit the "A disk read error occurred" screen on boot. I wasn't able to use XP Recovery Console (which may be able to fix this). Eventually I realised that the problem was mismatched geometry (the new 8GB VDI was detected by fdisk as 255 heads, while the old one was apparently 128).
I also found this brilliant post which contained the precise problem description and the working solution:
http://fugitivethought.com/blog.php?act ... blog_id=77
As I happened to have a JeOS (Ubuntu) VM lying around, I could attach the new VDI to it, and quickly carry out the steps described, which worked perfectly and fixed the XP boot.