Just to clear things up... the CLR is not involved in string interning. Interning is a compile-time concept, and the R in CLR is runtime.
Additionally, string variables are not interned. String literals are interned. A string literal is the stuff to the right, e.g.
var variable = "This is a literal.";
When the compiler notices that there is a string literal in your code, it has to add it to a resource table that is embedded in your assembly. When it adds it, it checks to see if it already exists, and if it does, it just uses the existing entry. Once compilation is complete, the entire table is emitted into the assembly, where it can be read at run-time by your code.