Nick
My problem is the same and I'm trying to set the LIBPATH for DB2 users. The following is an excerpt from a DB2 doc I ran across. It states, "On UNIX operating systems, the value of LIBPATH cannot be inherited between parent and child processes if the user ID has changed." I imagine that during the initialization of "X" the user ID is probably changed at some point. I use a similar workaround using a script that the user must execute after logging in. Very annoying!
Is there a way to set variables in "X" other than .profile, /etc/profile, .dtprofile? Something executed within "X" (not before) that will set the variables for all child windows opened within "X"?
Still confused

,
Chip
http://nscpcw.physics.upenn.edu/db2_...ix/db2ix96.htm
'Specifies the value of LIBPATH in the db2libpath environment variable. On UNIX operating systems, the value of LIBPATH cannot be inherited between parent and child processes if the user ID has changed. Since the db2start executable is owned by root and its execute permissions are setuid to root, DB2 cannot inherit the LIBPATH settings of end users. If you list the variable name, LIBPATH, in the db2envlist environment variable, you must also specify the value of LIBPATH in the db2libpath registry value. The db2start executable will then read the value of db2libpath and append this value to the end of the DB2-constructed LIBPATH.'