Don't use two for loops, otherwise for each letter a new home directory is created for all the users under each letter. Just loop over the users and extract the first letter from the username inside the loop. Actually you don't need neither the if/elif statement, until the commands are the same for all the letters:
Code:
#!/bin/bash
while read user
do
letter=$(echo $user | cut -c1)
mkdir -p /emails/$letter/$user/new /emails/$letter/$user/cur /emails/$letter/$user/tmp
echo "CHECKING T"
usermod -d /emails/$letter/$user $user
done < <(awk -F: '/home/{print $1}' /etc/passwd)