I'm not sure I fully understand your first question. You know you can hide things in a conditionalPanel and force users to click or fill in something in order to reveal the panel, that's one way to make some action "compulsory".
on your second question, see this:
one thing I do now is to customize the style on the id of the object. To see what I mean, look at:
in particular "#mainPanelId and "#sidebarPanelId
you should be able to apply the same technique. You don't have to put the styles in global.R as I did, you can put them in the body of your ui.R or you can have them in a css file with includeCSS: