Applications are spawned by launchd, which is why changing shell environments doesn't get propagated to GUI apps. Use:
launchctl setenv MYVAR myval
to change the launchd environment and those of the launched apps. These changes are lost after a reboot, unless you configure launchd via a plist file with these values. And there's a graphical plist editor for those that really like guis for these things.
That said, OS X is fairly hostile to the use of environment variables as required settings for GUI apps. Personally, I can't really blame them...
That said, OS X is fairly hostile to the use of environment variables as required settings for GUI apps. Personally, I can't really blame them...