- Save program settings, like preferences in Office and Firefox, on a general location so you can point both the Host and Guest to one location and have the same settings on both systems.
- Keep track of every file and registry key that are changed while working in the VM.
- Share files and other documents between the VM and Host, so you can download them in a so called sandbox system that can break without causing harm to your Host.
The first is really hard to do, because you face the problem Fixedwheel addresses, corruption of the files. These programs are made to have exclusive control on their config files. If you open Firefox on the Host and Guest at the same time, things can go horribly wrong. Office stores most of it's settings in the registry, something you can't share.
The other problem he noted, coming from compilers, is a bit different. When you read and write a file, it's saved in a temporary cache for fast access. This cache is written to disk when needed, but compilers constantly read and write from the disk. If the cache is not written when the compiler needs the file from disk, to, let's say, change something, the changes can be lost because the cache overwrites the changes that were just made. This is a problem when using Shared Folders, normal hard drives don't really have this problem because the OS knows where the most recent version of a file is, in cache or on disk.
The second point, keeping track of changes, can be easily done with monitoring programs. There are some more advanced programs that can save all these changes in a database. More simple programs are uninstall help programs. Just check Google for it, you will get plenty of results. It comes down to starting the monitoring of the system when you execute an installer. After the install is finished, you stop the monitoring again and you get a log with all changes made during the run.
The third and last option, to exchange files between the Host and Guest has been explained a lot on these forums already. Also the dangers of possible malware like viruses that could infect the Host from the Guest.
The basic function, sharing files, is nothing more than what you would do with two physical machines connected with each other over the network. You define a folder you want to share and the privileges on it (read only, or read and write). It's never a good idea to share a complete drive, unless you have a very good reason for it. Never, ever share the entire OS drive, that's asking for trouble.
For the best sandbox environment, you create a folder somewhere, let's say C:\Share, and you put the files you want to share in that folder. You can then from the Guest put files in that folder for the Host, and put files from the Host to the Guest. If you use copies, you will still have a backup of the original file in case you get a corrupt file or you make a mistake (e.g. remove it).
Another thing, don't forget to read the User Manual, and the VirtualBox FAQ for some more information.