You can write a script and run it daily (get a list of all mailboxes without a retention policy) or use a cmdlet extension agent to detect when mailbox is created and automatically assign a rentention policy (don't have access to exchange 2010 atm so can't really test it):
<?xml version="1.0" encoding="utf-8" ?>
<Configuration version="1.0">
<Feature Name="MailboxProvisioning" Cmdlets="new-mailbox">
<ApiCall Name="OnComplete">
if($succeeded) {
$mbx = get-mailbox | where{!$_.RetentionPolicy}
foreach($mb in $mbx){
Set-Mailbox –RetentionPolicy "foo"
}
}
</ApiCall>
</Feature>
</Configuration>
or only for this mailbox:
if($succeeded) {
$Name= $provisioningHandler.UserSpecifiedParameters["Name"]
if($provisioningHandler.UserSpecifiedParameters["RetentionPolicy"] -eq $null){
Set-Mailbox -Identity $Name -RetentionPolicy "foo"
}
}