"You had to run smbpasswd to add the user password because Samba doesn't automatically copy the Unix passwords into its password backend.
See man smb.conf for specifics on each smb.conf parameter. The unix password sync option doesn't replace Samba's password backend with the system password subsystem. It augments it by allowing your passwd program to run when the smbpasswd is changed. Here's the specifics from the manpage (emphasis mine).
This boolean parameter controls whether Samba attempts to synchronize the UNIX password with the SMB password when the encrypted SMB password in the smbpasswd file is changed. If this is set to yes the program specified in the passwd program parameter is called AS ROOT - to allow the new UNIX password to be set without access to the old UNIX password (as the SMB password change code has no access to the old password cleartext, only the new).
"I just had to debug a problem connecting to a samba share on Ubuntu 9.10 from Windows XP, and I found this description of setting up samba helpful, along with this samba troubleshooting guide.
In case you're curious, my firewall on Ubuntu was blocking access. I allowed access on port 445, and it started working.