and it will generally work by locale. Unfortuately as MS is designed in the US, it often as a default or through error drops into us format, so I personally never trust it in this sort of problem.
Best bet is to rearrange the varchar in a universal format (YYYY-MM-DD) and then convert that to a date and then convert it to the desired format on output.
This is going to be messy
Select SubString([DuffDate],7,4) + '-' + SubString([DuffDate],4,2) + '-' + SubString([DuffDate],1,2) From DuffDates
Would give you a string containing universal formatted date, so
Select Convert(DateTime,SubString([DuffDate],7,4) + '-' + SubString([DuffDate],4,2) + '-' + SubString([DuffDate],1,2)) From DuffDates
Gives you a dateTime and then wrap that in convert for teh required formatting.
This is the sort of problem you should fix at source if you can and make this naff column a date.
Another option might be to add a datatime column to it and then do an UPdate ... Where ProperDate is Null before processing.