Another change is when dealing with form lists from your ViewModel.
For example in MVC 1.0 if you had a list of objects IList< MyObject > displayed in your View
<% for (int i = 0; i < Model.Length; i++) { %>
<%= Html.TextBox("MyObject[" + i + "].FirstName") %>
<%= Html.TextBox("MyObject[" + i + "].LastName") %>
<% } %>
The input boxes would be rendered as
Note: id = MyObject[0]_FirstName and name = MyObject[0].FirstName
However, in MVC 2.0 they are rendered as
Note: id = MyObject_[0]__FirstName and name = MyObject[0].FirstName
This broke some jquery I was using to manipulate my table data. Notice the single and double underscores in the id.