Here is some working code you can play with. If you have any values in currency_varchar that can't convert to money, you'll get an error. Post again if that's the case. 
use pubsset nocount ongocreate table currency_conversion (currency_varchar varchar(20))goinsert currency_conversionselect '$345,434.0' as currency_varchar unionselect '435.0'goprint 'before update'select * from currency_conversionupdate currency_conversion set currency_varchar = convert(varchar,convert(money,currency_varchar))from currency_conversionwhere left(currency_varchar,1) = '$'print 'after update'select * from currency_conversiongodrop table currency_conversion
Be One with the OptimizerTG