I can think of a couple of ways to accomplish this. You could create
unix groups that contain users that can see some shares, then remove the
read/write/execute bit (or specifically the -x bit) for world/others on
the directorys that you want hidden from others. these same directories
need to have group ownership assigned to the group that is able to see
them, and r/w/x bits set at the owner/group level. So, unix permissions
may look like this:
drwxrwx--- user group ..... some_dir
as long as the x bit is not set on a directory, samba will not allow it
to be visible at that permission level.
The other way you could accomplish it would be to make the directories
not browseable, and have user specific logon scripts that map the
shares you want them to be able to access.