I use vmware, and there is an option when creating your virtual disk hardware to pre-allocate the entire space. When you do this, the entire size of the virtual disk file is reserved, and never gets moved through normal use of the VM. You can defrag once (after creating it) and never worry about it again.
Maybe VPC has a similar feature?
Of course the downside is that you have to pre-allocate the entire drive image.