When building a package that allows the user the option of specifying a value for a date variable, I'll set the value of that variable to something unusual, such as 01/01/1899. I'll then use a script task to check that variable to see if it is still set to the default, and if it is, I'll use the current date. If the value is not set to the default, I can assume that a date value has been specified, and I'll use that instead.
hth,
Tim
Tim Mitchell, Microsoft Data Platform MVP
Data Warehouse and ETL Consultant
TimMitchell.net | @Tim_Mitchell | Tyleris.com
ETL Best Practices