//192.168.2.101/backup /home/keith/backup ext3 /home/keith/.smbcredentials,UID=500,dmask=700,fmask=700
The mount command will call mount.cifs to perform the mounting. There are more cifs specific mount options given in the "man mount.cifs" man page.
//192.168.2.101/backup /home/keith/backup cifs credentials=/home/keith/.smbcredentials,_netdev,UID=500,dir_mode=700,file_mode=700
Use cifs instead of smbfs. You are using "ext3" which is wrong. Use "credentials=/home/keith/.smbcredentials" instead so your credentials information isn't listed in /etc/fstab. Also use the "_netdev" option so that if the server at 192.168.2.101 isn't available when you boot, mounting the share is backgrounded so that the boot process can continue. You could also use the "noauto" option and put a mount command in your ~/.profile file. Then the share will be mounted when you log in.
Firstly, smbfs is obsolete and no longer supported. Newer kernels don't support it.
Cifs has better Linux <-> Linux support. Even attributes and file acls work (setfacl, getfacl, etc). the "file_mode" and "dir_mode" options are the defaults if the server doesn't support the cifs protocol and the smb protocol is used as a fall back. Otherwise, your own umask value is used, just as it would be had you been using nfs or a local directory.
Also check which ports are open on the server. If you see these you are OK.
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Check if the smbd daemon is running of the server.