Let's say my company uses 10.0.0.0/16. Now let's say I set up a VPN. Half my users will be on local networks that are also 10.0.x.x. Fail.
Even worse, let's say my company has two locations and both use 10.0.0.x and now we want to link them on a common network using a VPN or virtual Ethernet bridge. Have fun renumbering one of these two sites, or setting up abominations like internal two-way SNAT/DNAT.
The reason IPv6's address space is so huge is to allow relatively stateless assignment of addresses with extremely low probability of conflicts. An IPv6 address is basically a UUID. That's going to make lots of things easier and eliminate the need for a huge number of nasty hacks.