When your OS writes files to the drive it doesn't necessarily start at the beginning and tightly pack everything together leaving all the empty space in one spot. Rather it sometimes seems that files are more randomly spread throughout the drive. Of course, when attempting to partition the drive while also running Windows, it is not possible to move files which are required to run windows. To partition this driver properly, you will need to do from a bootable program.
I'm not sure what version of Ubuntu you are installing, but usually the Ubuntu installer has partition tools built in. I.E. when you boot from the install disk, there are tools which allow you to partition the drive, and since windows is not currently running, you will...