A. SCCM uses a polling schedule to check if there are any advertisements for collections the client is a member of. This schedule can be defined by the administrator, but traditionally there was no way to push a package in real time to a client on-demand.
Clients discover the advertisements through a refresh of their machine policy, so one method to make a client deploy an update live is to remotely tell the clients to refresh their machine policies. You can do this several ways, such as through PowerShell:
$SMSCli = \\[wmiclass\\] "\\machinename\root\ccm:SMS_Client"
There are also third party tools that add this remote policy refresh launch to the SCCM management console. You can find this tool on its site.