I agree with running from the global zone. The added benefit is that if you backup the root of all zonepaths, then when you add any new non-global within that path, the new server will be automatically backed up.
We had been installing the client on each server both global and non-global in the past. On our non-global zones, /usr is not writeable but /opt is. We would symlink /usr/openv to /opt/openv from the global and then remotely install the client software from the backup master via
"/usr/openv/netbackup/bin/install_client_files ssh <client>"
We run our backup client in each local zone, simply because it does some application-based backup which can't really be controlled from the global zone, and because we run in a cluster environment, so the zones move about..
Where I work we run Netbackup 6.5.5 and we installed all the clients on the non-global zones as well as the global zones. Now one thing to mention we use full root zones where I work. We also have 2 media servers running in non-global zones.
If you want to take only system level backup it is recommended to run netbackup client from global-zone as this will enable you to restore all the data from backup ( that of zonepath) and start the zone.
If you have to application level backup, then go for backup client in non-global zone as application (like SAP and Oracle) can't be backed up from global zone.
For sparse root zone link /usr/openv to /opt/openv and install netbackup client.
For whole root zones install netbackup client in the same procedure as you follow in global zone.