Prova a fare cosi':
1- Ripristina solo il boot di Vista eliminando quello di Xp con EasyBCD.
2- Crea una nuova entrata con EasyBCD per XP in questo modo:
clicca su "Add/Remove Entries", clicca sul tab "Windows" sotto "Add an Entry", scegli la versione "Windows NT/2k/XP/2k3", non modificare "C:\" nella casella "Drive", specifica nella casella di testo "Name" la voce che vuoi vedere sul menu di boot (di default e' "Microsoft Windows"), clicca su Add Entry e infine, in alto, su "Save".
Adesso, cliccando su "View Settings", dovresti vedere le entrate del boot loader sia per Vista che per Xp in questo modo:
There are a total of 2 entries listed in the Vista Bootloader.
Bootloader TimeOut: 30 seconds.
Default OS: Windows Vista
Entry #1
Name: Windows Vista
BCD ID: {current}
Drive: C:\
Bootloader Path: \Windows\system32\winload.exe
Windows Directory: \Windows
Entry #2
Name: Windows Xp
BCD ID: {ntldr}
Drive: C:\
Bootloader Path: \ntldr
Windows Directory:
3- Accertati che i files boot.ini, ntldr e ntdetect.com siano sotto la radice della partizione C:
4- Verifica che il contenuto del file boot.ini sia questo:
;
;Warning: Boot.ini is used on Windows XP and earlier operating systems.
;Warning: Use BCDEDIT.exe to modify Windows Vista boot options.
;
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /NOEXECUTE=OPTIN /FASTDETECT
5- Salva tutto, riavvia e verifica che funzioni.
p.s. la tua situazione (1 solo disco con 2 partizioni) e' la piu' semplice da gestire con il dual boot... se non funziona neanche rifacendo i passi da capo come descritto non saprei piu' cosa dire