Attempting to run samba with a LaunchAgent - process won't start with system
I see several things that need fixing:


This should be installed as a LaunchDaemon, not a LaunchAgent.  The difference is that an agent runs inside a user login session, as the user; a daemon runs independent of who is or isn't logged in, and generally runs as root (which you need here).
The ProgramArgument list isn't parsed by a shell, so &amp;&amp; doesn't do what you want -- it's just passed as an argument to smbd.  You really should make two launchd items, one for smbd and one for nmbd.
The -D flag to each program tells it to daemonize, i.e. detach and run in the background; launchd expects the things it launches to stay connected so it can monitor them (and in fact will think a program has quit if it daemonizes).  Remove the -D flags, and use -F instead.


Also, if you have Snow Leopard (installed or available) take a look at the launchd items that start the system's version of smbd and nmbd; they're /System/Library/LaunchDaemons/smbd.plist and .../nmbd.plist.  They contain some additional tricks which you may find useful.  Most notably, nmbd is set to auto-relaunch if the network is up, and smbd is only launched on demand when a connection is received.