You can resize existing partitions, subject to certain conditions. On the whole, I've found it more faff than it's worth and I usually plug in a new hard drive, partition that the way I want it, install the operating system and program files, and then copy my "stuff" onto it. Hard drives are cheap; my "stuff" is valuable (to me).
Otherwise, my understanding is that moving stuff in the same partition just involved changing "flags", whereas moving between partitions involves reading it, writing it to the new place, then deleting it from the old one.