Impact of changing char(10) to varchar(12) on massive table
Based off this and this post I would say, yes, the change from char(10) to varchar(12) will touch every row and hence grow the log.  My reasoning being that the column has moved from the fixed-length to the variable-length part of the row structure and the storage engine will have to persist this information straight away.

Variable length columns will have a two byte overhead to track the actual length (see above).  If the average length of your data is 8 bytes or fewer you are on to a winner with this chage.  Otherwise you will be taking up more space with a varchar.

The digits you require could be stored in 9 bytes with a numeric type.  This would be too much of a change to your application, I suspect, even if it is the proper way to hold this data.

I'd suggest you add a new nullable column of the right type and length.  From the above post this will be a meta data only operation with minimal logging.  Put triggers in place to keep the new column in sync with the existing one.  Then your application can keep working while the following steps happen.  Copy the existing data across in chunks.  Test on your development box to find what chunk size gives the right balance of elapsed time and log size for your system.  In my experience 10,000 is about right.  Once everything's in place, drop the old column and triggers, and rename the new column.  An index rebuild will be necessary to reclaim space.  Here are some SO posts which deal with this subject.