I just did a quick test by downloading the latest version of Hudson (1.316), and creating a job that runs simply "set" (if you're not familiar with this, running set by itself in the console lists all the environment variables within the current scope).
Here's the console output, these are all the environment variables - user and system, plus variables defined by Hudson itself to make the Hudson meta information available to the jobs:
Started by user anonymous
[workspace] $ cmd /c call D:\Temp\hudson5023210513071219278.bat
C:\Documents and Settings\jack\.hudson\jobs\Environment Variable Test\workspace>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\jack\Application Data
BUILD_ID=2009-07-19_22-59-42
BUILD_NUMBER=1
BUILD_TAG=hudson-Environment Variable Test-1
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=BEEBLEBROX
ComSpec=C:\WINNT\system32\cmd.exe
EXECUTOR_NUMBER=0
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\jack
HUDSON_COOKIE=a0bc798a-20ab-40bc-aad6-f4a331567999
HUDSON_HOME=C:\Documents and Settings\jack\.hudson
JAVA_HOME=c:\program files\java\jdk1.6.0
JOB_NAME=Environment Variable Test
LOGONSERVER=\\BEEBLEBROX
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Os2LibPath=C:\WINNT\system32\os2\dll;...blah...blah...blah...
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 15 Stepping 0, AuthenticAMD
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0f00
ProgramFiles=C:\Program Files
PROMPT=$P$G
QTJAVA=C:\Program Files\Java\jre1.6.0\lib\ext\QTJava.zip
SystemDrive=C:
SystemRoot=C:\WINNT
TEMP=D:\Temp
TMP=D:\Temp
USERDOMAIN=BEEBLEBROX
USERNAME=jack
USERPROFILE=C:\Documents and Settings\jack
windir=C:\WINNT
WORKSPACE=C:\Documents and Settings\jack\.hudson\jobs\Environment Variable Test\workspace
C:\Documents and Settings\jack\.hudson\jobs\Environment Variable Test\workspace>exit 0
Finished: SUCCESS
I suspect your variables are simply not defined within the environment of the owner of the Hudson process (or something like that, we'll need more information about your Hudson set up to really know).
Edit: Another note, you can have a look at /systemInfo to see all the system properties and environment variables that are available to Hudson. Keep in mind that when Hudson spawns a new process to do work, all environment variables should be available to the child process, unless Hudson explicitly remove them first (this is more a nature of the operating system than Java, I believe). So unless you see any documentation detailing the removal of certain environment variables (and if so, I'm sure the developers would have a reason for it), I'd first check to see if the variables are available to Hudson in the first place.