You should have BOOT.INI and NTLDR and NTDETECT.COM on the Vista partition, regardless whether XP itself is external or not.
Your boot.ini needs to be configured to point to the correct partition. Most likely USB drives are considered to be a separate controller, so you'll need to play around with more than just rdisk()partition() values.