So with surface shaders, sometimes you need to make a forward-only shader for odd lighting models (skin, hair, eyes, etc) and blending modes (premultiplied alpha, additive, etc). In these cases you need to remember to use the attribute "exclude_path:prepass". If you forget, though it might look fine on the PC, it will have broken visuals on MacOSX when used in deferred mode. We've also found that it will get weird results when used with third-party frameworks like Candela SSRR in deferred mode.
Bottom line, for all custom forward-only shaders ALWAYS include the attribute "exclude_path:prepass" in your surface definition pragma!