As bugs like this demonstrate, NSIS really needs longer strings.
I was just trying to install CMake, and it turns out that my user-local PATH variable is just too damned long for NSIS. This is kind of annoying (c'mon, strings can't be dynamically-limit-growable?), and I'm sure other users hit this too.
The design decision to use fixed size strings was before my time but I assume it was done to avoid dealing with out of memory errors.
Updating %PATH% with dynamic buffers can be done with the system plugin and pure WinAPI calls ( http://stackoverflow.com/a/31342128 ) but then you are just pushing the problem on to someone else, after all, %PATH% is a limited shared resource.