Well, you can just delete them all at logoff.
And have the Login script map what is needed at that time.
Here is a piece of code I've written to delete all mapped printers:
 Code:
Dim $WSHNetwork, $WSHPrinters, $i
$WSHNetwork = CreateObject("WScript.Network")
$WSHPrinters = $WSHNetwork.EnumPrinterConnections
For $i=0 To $WSHPrinters.Count -1
  If Left($WSHPrinters.Item($i),2) = "\\"
    $=DelPrinterConnection($WSHPrinters.Item($i))
  EndIf
Next

Keep in mind though, when you delete all mapped printers, that when you do map them again each time you have to set the Default Printer as well, this is a major pain for most (whining) users to set manually each time.