One hard drive will suffice: Partition it with fdisk from your Windows installation disk or, preferably, from a Knoppix disk, so that you will have two partitions of about 20G each, one for each of the operating systems, and the remainder of your hard disk blank and thus available for any future use you might want to make of it. Install Windows first, do so on the first partition, and make that partition "bootable", thus writing an MBR and a Partition Table to its first block of 512 bytes. Then install Ubuntu on the second partition. That Ubuntu installation should include a Grub package which, during the course of its installation, should allow you the opportunity of making it, Grub, aware of your existing Windows partition; do so. With all the installations completed you will then have a dual-boot box along with Grub to allow you the choice of either any time you boot it up. In addition, you will have plenty of disk space available for any subsequent installations you might choose to make.
Let me add here that I forgot to mention the need for a swap partition (that's a memory thing, and you know how old saws are with memory): Give your hard drive three partitions - two of 20G or so each for the operating systems and a third of one or two Gigs to serve as a swap partition for your Ubuntu system.