The S2 uses a Mali GPU. It's most likely that the custom shader does something that either the gpu (unlikely) or the driver's shader compiler doesn't like. But it's hard to tell and debug without access to an actual device (which i don't have...). If possible, get a device and try to use the default shaders instead (i.e. don't use your custom ones). That should look ok. If that's the case, try to debug your shader by wild guessing and taking desperate actions...at least that's what i did to get the default shaders working on almost any device that i know of.
In general, shader compiler quality differs largely from one gpu manufacturer to another...the order from bad to good is roughly:
Adreno->Mali->PowerVR->Nvidia
Feel free to post the current shader code you are using. Maybe i can spot something based on bad experience with my own shaders...