Here's all you ever would want to know about setting up SAMBA
That's pretty good stuff. Takes a while to load.
search for winbind on that page.
Basicly you are going to use a windows domain server to control the authentification thru the Linux PAM system.
PAM stands for pluggable authentification modules. They control how the authentification proccess happens in Linux. Before PAM programs like "login" could only check stuff like the /etc/passwords file to authenticate users if you wanted to use NSS (a older Unix network domain setup) you may have to recompile each and every program that requires authenfiction to make it.
Now you just change the PAM configuration to choose how you want to set things up. You can add new modules if you want to change everything.
Some older OSes and backwards OSes like Slackware

P) don't use PAM, but new ones will.
Window's active directory and NT domains works like thru a network information server protocol called LDAP.
So the service "winbind" gets it's user info from window's LDAP (in other words AD server or NT domain server) server and sets up SAMBA authintification that way.
You can use Linux as a domain controller if you want. OpenLDAP is commonly used, I don't know how well it works with windows, though! NSS is old school *nix stuff.
Depending on the version of SAMBA your using you can set that up as a DC or a PDC
(also make .bkup files of any configuration so that you can reverse the changes!)