If you create a new process without adding the environment block (by calling CreateEnvironmentBlock) the new process may fail to call Shellexecute and some other functions. Don’t think that the enviroment variables aren’t that important. Find out more about CreateProcess in the post about “CreateProcess in full glory“.
Did you ever wonder how to create a process in another session. Remko shows us on his page how to accomplish this task. Go and learn it from here.