There are two different solutions proposed here. The first is the one you propose, whereby you put applications installers/msi's on a samba share, then just automate the client machines to routinely check the share for new installers and install them when they can. I'm sure this could be done, but I don't know enough windows to tell you how to schedule all that.
The second option is proposed by thegoldenear dot org. In this one, you simply install the program on a computer with write access to the share, and when it asks for an installation path, you give it the samba share. Then all programs run it straight off the samba share without installing.
Both ways have pros and cons
+Should your network go down, each computer can still use the applications
+Network bandwidth is saved by only transferring the installation once instead of many times.
-Should a client not be on the network when an update/installation was available it may lose out.
Running off the Server
+Any computer attached to the network has instant access to all these applications - no installation.
+Greatly simplified maintenance
-More bandwidth used as you transfer programs every time they are run
-If a program makes much use of the registry, you'll confuse the **$! out of it.
Before using either method, make sure your licenses allow. Most windows software is not free, and the owner/publisher of the software may not take kindly to your network-distributing their application without paying additional licenses. Read your licenses carefully lest you risk a lawsuit. Now doesn't GPL sound better already!