If you have a VPC install and need to expand your boot virtual drive, unfortunately, the only solution I'm aware of is using a commercial application.
However, there are two work-arounds:
1. The slow way, which is to create a 2nd, larger virtual hard drive, mount that, boot into the host, then using a ghosting software, ghost (image) your primary hard drive onto the new, larger drive. Then shutdown the OS, modify the setting so that the 2nd hard drive is now your primary boot drive and then remove the original hard drive.
2. The fast way, is to create a 2nd hard drive, boot into the OS, assuming a Windows XP guest, right-click on My Computer and select Manage, and go to the Disk Management. Right click on the new hard drive, select Change drive letter. Remove the drive letter. Click Ok. It should unmount the drive. Then click Change drive letter, Add, and check "Mount in the following empty NTFS folder." Create a folder on your C: drive and select that as the mount point for your 2nd drive. Done! If you're running a Linux guest, you should be able to setup the drive on a folder mount point as well (just Google for the instructions).
The 2nd option allows you to add hard drives as folders of your C: drive. This indirectly expands the available space in your VPC without having to modify the size of the original drive. This is useful if you need more storage for non-system files (ie. applications, data, etc.) This will work for any of the folders on your drive, including the Program Files folder, if needed. But the mount point should be empty. Otherwise, when the new hard drive is mounted, it'll "hide" the contents of the folder. But if you need to mount to an existing folder, just rename it first, create an empty folder with the same name, and then mount the hard drive to that folder.