One way off the top of my head (there is probably alot better way of doining this):
1. Make a user for the admin --dont call it admin--call it billy (or anything else).
We'll use the example user "dan"
2. Make a group for each user. Like this:
groupadd dan
After adding each group edit your /etc/group
vim /etc/group
--inlude billy and dan in the dan group
(dan will still be a part of the "users" group)
Do this for each user.
3. chown "dan" 's /home/dan from
dan:users
to
dan:dan
with
chown dan.dan /home/dan
4. Now to set permisions on the directorys, I would use this:
chmod 761 /home/dan
This gives read/write privliges to the "dan" group which includes dan and billy, and the owner has read/write/execute
this will give root complete controle (it always does

), it gives dan permisions to his own files (because he is the owner) and because billy is in each group he also has access to the files.
5. For samba I would use swat as mentioned above. From CLI:
lynx localhost:901
Or any webbrowser
Set up your shares through the web interface--also dont forget to add the users into swat/samba for passwords (client for ms logins) Make sure the user name and passwords are the same in win and linux for billy and dan (and others). Make sure regular users can access their own files.
6. Edit the samba.conf
vim /etc/samba/samba.conf
add to each share that billy needs access to:
guest ok = Yes
guest account = billy
Like I said there are probably much easier ways of doing it--this is just one way I could think of. Maybe others will come up with a better way.
dan