Your problem is the Casper $3 variable. That ONLY works for policies using the login (or logout I think) trigger.
I use this line as a variable to determine who is currently logged in.
currentuser=/usr/bin/defaults read /Library/Preferences/com.apple.loginwindow lastUserName
It is 99% accurate. It can get confused if someone logs in via fast user switching.
Here is what you do...
Create a policy to run this script.
Triggered By: every15
Execution Frequency: Whatever you need.
Of course test this for your environment before going live.
#!/bin/sh
####################################################################################################
#
# ABOUT THIS PROGRAM
#
# NAME
# GetMCXForCurrentUser.sh
#
# Get the Casper Managed Prefs (MCX) for the currently logged in user.
#
####################################################################################################
#
# HISTORY
#
# Version: 1.0
#
# - Created by Eric Benfer on January 24th, 2012
#
####################################################################################################
#
# DEFINE VARIABLES & READ IN PARAMETERS
#
####################################################################################################
# HARDCODED VALUES ARE SET HERE
mountPoint=$1
computerName=$2
username=$3
currentuser=`/usr/bin/defaults read /Library/Preferences/com.apple.loginwindow lastUserName`
/bin/echo "currentuser is $currentuser"
####################################################################################################
#
# SCRIPT CONTENTS - DO NOT MODIFY BELOW THIS LINE
#
####################################################################################################
### Typical Functions you can call on. ###
#
### Ensure we are running this script as root ###
rootcheck () {
if [ "`/usr/bin/whoami`" != "root" ] ; then
echo "script must be run as root"
exit 0
fi
}
#################################################
#
rootcheck
# Use this line if you are using Caser to manage your MCX
#/usr/sbin/jamf mcx -username "$currentuser"
# Use this line If you are using Workgroup Manager and an OD server to manage your MCX
/usr/bin/mcxrefresh -n "$currentuser"
exit 0;