I tried turning on OS X's home folder syncronization, but that didn't work very well, and filled up our older computers fast. The solution I found was to locally cache the user's Library and Microsoft User Data folder. To do this, create a symbolic link from the user's networked 'Library' folder, and point it to a local source -- I used /tmp/UserCache/user/Library, where user is the user's short username. Here is the login script I created to automate the process:
#! /bin/bash
# Create local user caches of important directories
# Written by Steven Eppler 04/04/2006
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin
# Set user variable
user="$1"
# This grabs the user's home directory server
input=`dscl localhost read Search/Users/$user NFSHomeDirectory`
nethomedir=${input:18}
# Or you can hardcode it...
# nethomedir="/Network/Servers/ServerName/Volume/$user"
# Check for blank nethomedir - otherwise you will delete
# the root /Library folder!
if [ """$nethomedir""" != "" ]; then
echo $user
echo $nethomedir
# Create local caching directories
mkdir /tmp/UserCache
mkdir /tmp/UserCache/$user
mkdir /tmp/UserCache/$user/Microsoft User Data
mkdir /tmp/UserCache/$user/Library
# Give everyone rights to them...
chmod -R ugo=rwx /tmp/UserCache
# Create Documents and Desktop folder (sometimes they don't exist)
mkdir $nethomedir/Documents
mkdir $nethomedir/Desktop
# Delete old folders or links
rm -rf $nethomedir/Library
rm -rf $nethomedir/Documents/Microsoft User Data
# Create new links
ln -s /tmp/UserCache/$user/Library $nethomedir/Library
ln -s /tmp/UserCache/$user/Microsoft User Data $nethomedir/Documents/Microsoft User Data
fi
Note that this comes from an entry on my blog; future code updates will likely appear there.

