Your .bash_profile looks correct. The only reason your umask should not get exected, is if the file isn't executed at all, or if there is an error in your .bashrc.
I had a similar problem once. To verify that my .bash_profile got executed, I added to the beginning:
echo -n Loading profile... 1>&2
and to the end
echo done 1>&2
[ -r ~/.bashrc ] && . ~/.bashrc
And then similar in my .bashrc.
Now, whenever I login, I'm greeted with:
and know that everything is ok.
It doesn't really matter if you do "umask 007" or "umask 0007". Both 007 and 0007 (and 07, for that matter) represent the same (octal) value: 7.
As far as I know, there is no way to limit the effects of an umask to a single folder. Depending on what you try to do, you can work around this by creating appropriate groups and adding users to them.
You say that umask is not working for you. How do you test this? Somewhere in the beginning of your post, you mention that you are working on samba directoryies. You do know that when accessing directories through samba, your .bash_profile isn't read and hence umask doesn't work? From the smb.conf documentation:
create mask (S)
When a file is created, the necessary permissions are calculated according to the mapping from DOS modes to UNIX permissions, and the resulting UNIX mode is then bit-wise 'AND'ed with this parameter. This parameter may be thought of as a bit-wise MASK for the UNIX modes of a file. Any bit not set here will be removed from the modes set on a file when it is created.
The default value of this parameter removes the 'group' and 'other' write and execute bits from the UNIX modes.
Following this Samba will bit-wise 'OR' the UNIX mode created from this parameter with the value of the force create mode parameter which is set to 000 by default.
This parameter does not affect directory modes. See the parameter directory mode for details.