To understand how, let's look at what a user typically has on their PC, or on their VM. There is an operating system of course, layered with applications, drivers, updates and configuration information. On top of this, there are user-specific environment settings -- or profile data. And finally, there is user data.
A typical network of desktops uses methodologies like roaming profiles, or NAS-resident user data repositories (i.e. where your "Documents" folder points to a network location). If you use Active Directory or a similar centralized permissioning and authentication system, you can typically log into different systems and the group policies ensure your Documents and data folders are accessible and that they point to the correct NAS location.
As far as the OS goes, typically all your office computers will be on the same version, with the same updates applied. But there still might be some differences in the applications accessible to PC A vs. PC B. A corporate IT department will typically have OS images for each type of user, and these images will contain the applications necessary to serve that type of use.
While this approach certainly beats having to manually install each OS configuration every time a new user is commissioned, it is still a little kludgy and time consuming. So, how can we solve each of these issues, i.e. OS availability, app availability and user-data availability in a distributed VDI context?
It so happens that NAS-stored user data or roaming profiles are entirely feasible in conjunction with VDI. You can, in fact, use generic VM images which represent the various application configurations you need to support and allow network-based user data shares to be mounted on these VMs post bootup via group policy or startup scripts.
As for user profile customizations, you get quite a bit of this with default Windows roaming profiles. But if you are not using roaming profiles or prefer alternate approaches, various free resources are available to allow you to clone a user profile from a source Windows system and restore it to a destination.