I've always taken a simple approach and allowed for a generous amount of space for the OS and let the remainder be used for UserData and other storage. On my current Windows 10 desktop, that meant 80GB for system and the remaining 170GB (250GB HDD) to hold user data. My base Windows 10 installation is about 40GB and is unlikely to grow much since it's really a backup PC now. I never touch partitions that are "hidden" or otherwise marked as recovery of some such. The whole idea behind partitioning is to tailor them to your needs; only you can decide what you need and what works for you. You're going to find articles all over the internet concerning what partitioning schemes are "best". Breakup your HDDs is whatever manner serves your needs. When it comes to laptops, a simple approach again, I just don't change anything. I used to, but found for me it was just a waste of time. Again, for me it was waste of time so I stropped doing that.
I usually create a user partition for 2 reasons: - backup original recovery DVDs for pre-installed Windows Vista, 7 or 8.x (I use CD Emulator 10 to create ISOs instead of burning them) just in case someone wants to return to factory default; - move user folders to other partition (docs/videos/music/etc folders, not the account folder) so if Windows needs a reinstall, files are already backed up without requiring external storage. I just want to make sure Windows installation recognizes the special partitions and uses them, instead of ignoring them due to a unusual layout. In my laptop I don't have that problem, because I replaced the main HDD for a SSD and the ODD for a HDD caddy with a 2nd HDD, so Windows created whatever partitions it wanted on the SSD and left the 2nd HDD untouched which I use as the user partition.
Why don't you create the standard layout with WinRE at the end then shrink the Windows partition, then create the data partition. Easy.
Just use the native VHDs for multiple boot configurations and forget about the old school partitioning
Sill a good idea if you want to keep the data separated from the os, either using vhdx for data and one for the os, a native installation of the os and a vhdx for data or viceversa.
Thanks for the suggestion, but it's for end users so I prefer to keep it simple and use a standard installation. Also, the last time I used VHDs was with Virtual PC 2007
End user have no idea about what are either partitions or vhd, and yes a lot is changed since the crappy virtual PC. Vhds are just a simpler way to manage the space on a real hdd. Eg 1 file to backup, instead of thousands of files. just to tell one of the advantages
Can I just say that most end users are pretty dumb when it comes to partitions & storage. Nearly all notebooks shipped with a 1TB hdd gets a Data partition. How many people actually use this? I'd say most don't. The only time they'd use it is if it's removed & the space allocated to the Primary or User profile Data is re-directed (causing upgrade issues later down the track). That's just my observation when I see PC's & notebooks coming in for upgrade/repair.
I wouldn't say they're dumb, just not knowledgeable about partitions; and that's alright, they shouldn't have to know about stuff like that in order to use a computer. In general, I consider a separate data partition on a single-boot machine pretty useless, because you won't be able to efficiently use the available amount of space. Having user data stored on a separate partition doesn't make the data any "safer" than storing it on the OS partition (i.e. you'll have to back it up somewhere else anyway); and finally, even if you don't have a backup to restore from, deleting just the OS files in case of reinstall (instead of formatting) is simple enough to do as well. With a single partition you won't have to try to guess which size to make your partitions, and you'll never run into the issue of running out of space on one due to having guessed wrong. In any case, you can use "reagentc.exe /info" to view the location of the currently used WinRE image (winre.wim), and "reagentc.exe /setreimage" (as indicated in the manual deployment guide) to change it.