Curly braces inhibit all expansion*:
echo {hello $world}
You could also just escape the brackets:
Echo "hello \$world"
- Curly braces inhibit all expansion when the statement is parsed. However, some commands may choose to do their own expansion internally. The
if
statement is one such command -- even with curly braces variables will get expanded. Not many commands have this behavior, though.
This is all documented in the Tcl man page. Here's a link to the section on curly braces: http://tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M10
You might also be interested in this question on stackoverflow: General string quoting for Tcl
Note that curly braces aren't magic -- you still have to apply the quoting rules. For example, you can't have unbalanced curly braces, etc. the precise quoting mechanism you need will vary depending on the data. For some strings that means curly braces, for some it means quotes, for others you might need the backslash. For still others you may need a combination along with string concatenation.