Yes you can dual-boot OS's on different HD's. If this is your current boot sequence:
"Hard Drive, Floppy, CD, Removable Devices"
You won't be able to boot off any device other than your hard drive, since it's first in line. To change the boot order, simply go into your BIOS. You can keep winXP on the 12gig HD. All you would have to do is install your new HD then once installed, install Linux on that. Once Linux is installed on HD2 you will simply need to install/configure a boot loader such as lilo or grub. Once your done, every time you start your PC you will see a boot menu asking you what OS you want to boot.
**EDIT** oops I just noticed you wanted to boot from an external hard drive, read here:
I would just get an internal.