OK I found the problem. Though I'm not sure why its the problem.
Curved World has two shaders, one is a "Global" shader and inherits loads of properties, the other is not. The actual shader code is irrelevant but the shader name is causing the problem. The shader that doesnt work is
Shader "Hidden/VacuumShaders/Curved World/Custom/3D NGUI Font"
{
and lives in VacuumShaders\Curved World\Shaders\Custom\3D NGUI Font_Global.shader
I've copied the exact same shader code into another shader file in the exact same file location but with the name
Shader "VacuumShaders/Curved World/Custom/3D NGUI Font"
{
at VacuumShaders\Curved World\Shaders\Custom\3D NGUI Font.shader
and it just works. I cannot explain why this works but the "global" shader does not.