It was also wrong in Windows 7 and every other Windows version released in the last 25 years.
While it would be possible to give all users write access to %windir%, it is a huge security issue and not something I can recommend.
Your best option is to modify your application so that it requests UAC elevation in its manifest. If the application does not already have a embedded manifest (not requesting ComCtl32 v6 etc.) then you can theoretically use a external .manifest file.
A less ideal solution is to set the compatibility flag:
!include x64.nsh
${If} ${IsWow64}
SetRegView 64
${EndIf}
WriteRegStr HKLM "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "$InstDir\MyApp.exe" "RUNASADMIN"
SetRegView Default
Application compatibility layers are there for the customer, not for the program but I suppose we are way past trying to follow the Microsoft guidelines.