I'm often tasked with deploying client applications to many workstations on a network, and in most cases Group Policy or Microsoft Configuration Manager works perfectly for this sort of thing. However, PowerShell can handle the task just as well. For deploying an MSI package, a couple lines of code is usually enough to handle the task.
If you plan on using PowerShell to deploy applications on a regular basis, you should write your script in a way that can be reused for future app deployments. The script I wrote below is not modular, but it fit my needs at the time. For a full featured PowerShell application deployment solution, check out Dan Cunningham's PowerShell App Deployment Toolkit - http://psappdeploytoolkit.com.