The late XV105
A possible solution from a different angle. I to have always used your concept of using partitions, except I go further with more partitions.
My solution for cleaning up a disk drive would be to use Ghost, other disk imaging products are available. Create images of both your partitions and store elsewhere, then format the disk and reload the C drive image, enlarge to partition to the required size. Then reload the D partition.
You have to be careful with enlarging the C partition as Ghost creates the partition it requires as it reloads a partition and will recreate the original size partition.