For item 1 you can do this a few ways. Depending on how you configured your agent, it will check for "policies" once every 24 hours by default.
If you need to speed up that process you can either "push" the software out as a scheduled task instead of a policy based job or you can create a Custom Script in the "Manage Scripts" tool that contains this command:
Schedule the script on your system(s) and it will cause the system to check for polices.
For item # 2... yes and no.
If you have scheduled a policy based job for a system and want the use to be able to start it, all they need to do is open the Software Portal and it will cause the system to check for any policies, not just tasks schedules for the portal. It is running the same command I show above.
If there are no tasks scheduled for that system, the use cannot cause one to run
Keep in mind on the above, that system if so configured, may run the policy BEFORE the user calls for it by running the portal if the system does its normal check for policies (once per 24 hours by default) prior to the user calling for it.
Hope that makes sense, let me know if you need more info
For item 2, you might also consider adding an item to the user's Start Menu (maybe using launchpath)) pointing to the executable James mentioned. That way the users can click on that and check. Keep in mind there is no interface at that point, although you can wrap the executable in a vbscript to at least provide a message.