This is kind of hard to explain, but I'll try.
ldconfig is a program that comes with Linux and it's responsible for configuring symlinks and cache of shared libraries in the system. Every time we run it (and Porteus runs it all the time through its scripts), all shared libs are checked for any inconsistence, like dead symlinks.
Now, Nvidia driver installs some new libs but remember: Porteus already comes with Mesa drivers. So Mesa comes with the file 'libGL.1.2.0' and Nvidia driver comes with 'libGL.1.0.0', however both use 'libGL.so.1' as the symlink. When Nvidia installer ends, it simply deletes Mesa 'libGL.1.2.0' and calls ldconfig to update all symlinks (if you pay attention to the Nvidia installer process you'll notice this). The catch is that Porteus, as an always-fresh OS kind, restores Mesa driver every reboot, so we have an odd situation when both Mesa 'libGL.1.2.0' and Nvidia 'libGL.1.0.0' exist. When ldconfig is called facing this scenario, it thinks that the symlink 'libGL.so.1' should point to the newest version of libGL, which, guessing only by the name, would be the Mesa one, but that's not what we want, of course. Can you see the problem?
My solution is dirty as hell, but it works: I make a new copy of 'libGL.1.0.0' as 'libGL.1.2.0' and keep it inside Nvidia module, so every time Porteus reboots and restores Mesa libGL.1.2.0, Nvidia driver module comes just after it overwriting Mesa 'libGL.1.2.0' with my copy -- which is actually the Nvidia lib we want.
But, as you like to say, nothing is really simple when dealing with Linux, so this solution depends on your Nvidia card. With my old GTX 650 Ti the solution above works flawlessly, but with older Nvidia cards it's not enough -- and that's why there's a IF/ELSE inside my script, so the script works for both new and old Nvidia cards. But... Maybe your current machine is a new scenario that my script isn't able to deal with. Are you sure you're running as root inside text mode?