I think what Vagrant users really appreciate is a URL for a base box they'd like to try.
They simply make a Vagrantfile like this:
Vagrant::Config.run do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
end
And then type:`vagrant up`.
The base box downloads (once) they can start using it after it boots. That is to say, much of the process of spinning up a new virtual machine (VM) is automated.
When you're done with it, you type `vagrant destroy` to delete the instance. The downloaded base box remains, however, and you can create a new instance whenever you want with `vagrant up`. Or you can create multiple instances.
Vagrant is probably most useful in defining environments for servers. You can see
https://github.com/pdurbin/greptilian-vagrant as an example of this. I make adjustments in a test VM running on my laptop, save the configuration (using Puppet), and then later deploy the new configuration to the production server. That's one of the key features of Vagrant: its support for configuration management tools such as Puppet and Chef.