I actually utilise a small hack that I came up with for that very reason. In my cron/php/doexpire.php file I changed:
$query = "
DELETE FROM {$config['tbprefix']}Posts
WHERE B_Main = '$Mnumber'
AND B_Board = '$Keyword_q'
";
$rc = $dbh -> do_query($query);
to this:
$query = "
UPDATE {$config['tbprefix']}Posts
SET B_Board = 'trash'
WHERE B_Main = '$Mnumber'
AND B_Board = '$Keyword_q'
AND B_Board != 'UBB62'
";
$rc = $dbh -> do_query($query);
'trash' is the keyword for my archive forum. I excluded the UBB62 forum because this in an off-topic forum, and I wanted those to be deleted. You can leave that line out if you want everything moved and none deleted. However, to have old posts in UBB62 deleted, I inserted:
$query = "
DELETE FROM {$config['tbprefix']}Posts
WHERE B_Board = 'UBB62'
AND B_Main = '$Mnumber'
";
$rc = $dbh -> do_query($query);