I know this is old, but you know good old Google...
You must first parse the data in the column to ensure that all values will 'implicitly' convert to the new data type.
simple sql to review all rows that will not convert:
SELECT <column> WHERE IsNumeric(<column>) = 0
Once all values in the column can be implicitly converted to the new data type, the alter column statement will complete.
For other readers, note that certain data types and values can only be implicitly converted to specific types and this method may require first a conversion to varchar and then to your desired type.
For some types, you will not be able to use implicit conversion at all, in these cases you will may need to do it the MS way... write the data out to a temp table, drop rows, alter table then write back the rows...