My rule for 'what goes where?' is: is it likely to be customised by an end user?  If the answer is 'absolutely' - site.pp; if 'maybe, under some circumstances' - core.pp; and if 'no, and if they have to change it that implies we should change it ourselves because we've made a mistake' - then put it in a module.  I want to avoid the circumstance where an end user has to change a file that's part of an Ubuntu package and is, therefore, at risk of overwriting during an upgrade.