@Mart... would you mind testing these versions out... I added some error checking/etc.

function SetDefaultEmailAddress($defaultemail,optional $user)
dim $addys[0], $objuser, $objsysinfo, $email, $i, $rc
$setdefaultemailaddress=-1
if $user
$ObjUser=GetObject("LDAP://" + GetUserDN($user))
if @error
exit @error
endif
else
$objSysInfo = CreateObject("ADSystemInfo")
$objUser=getobject("LDAP://" + $objSysInfo.UserName)
endif
For each $email in $objUser.proxyAddresses
select
case right($email,-5)=$defaultemail
$addys[0]="SMTP:" + $defaultemail
case left($email,4)="smtp"
$i=$i+1
redim preserve $addys[$i]
$addys[$i]="smtp:" + right($email,-5)
case 1
$i=$i+1
redim preserve $addys[$i]
$addys[$i]=$email
endselect
Next
if $addys[0]
$objUser.proxyAddresses=$addys
$objUser.setinfo
$rc=@error
if $rc
$setdefaultemailaddress=$rc
exit $rc
endif
$setdefaultemailaddress=0
endif
endfunction






function GetEmailAddresses(optional $user)
dim $addys[0], $objuser, $objsysinfo, $email, $i
if $user
$ObjUser=GetObject("LDAP://" + GetUserDN($user))
if @error
exit @error
endif
else
$objSysInfo = CreateObject("ADSystemInfo")
$objUser=getobject("LDAP://" + $objSysInfo.UserName)
endif
For each $email in $objUser.proxyAddresses
select
case left($email,4)=="SMTP"
$addys[0]=right($email,-5)
case left($email,4)=="smtp"
$i=$i+1
redim preserve $addys[$i]
$addys[$i]=right($email,-5)
endselect
Next
$GetEmailAddresses=$addys
endfunction