Some extra details about those accounts: http://stackoverflow.com/questions/510170/the-difference-between-the-local-system-account-and-the-network-service-acco .
Additional observations (I don't care about Windows NT <= 4):
- Windows 2k has all the profiles under "Documents and Settings" (hereafter, "D&S"), y compris SYSTEM (however, no LocalService nor NetworkService accounts do exist nor are used by services themselves).
- In Windows 2k(3) installation, 2nd stage (GUI), even if services under Local/NetworkService accounts (eg. rpcss) are started, neither "D&S\LocalService" nor "D&S\NetworkService" profiles are created yet. It appears that "D&S\All Users" and "D&S\Default User" are initialized there. The "System32\config\systemprofile" is created/migrated at the end of the 2nd stage. Note that "System32\config\systemprofile" replaces Win2k's "D&S\SYSTEM", meaning that this new path is hardcoded as a special case in userenv.dll .
- Currently ReactOS behaves more like Win2k in this matter (presence of "D&S\SYSTEM" and no (at least working) Local/NetworkService accounts (and their profiles)). (EDIT: Recently fixed in 0.4.10 / 0.4.11.)
- Win2k3's syssetup.dll calls ordinal-only (#155) "CopySystemProfile" function in userenv.dll to migrate Win2k's "D&S\SYSTEM" profile to "System32\config\systemprofile".
- So that I infer that all the "generic" stuff ("D&S\Default User" and "D&S\All Users") is indeed set up at 2nd stage, while LocalService/NetworkService and SYSTEM still do not have a proper profile set up yet, but starting 3rd stage, userenv can correctly set up the profiles for those accounts whenever they are loaded.