Even if you set it disabled="", it is still considered disabled since the element will still have an attribute disabled. Without using JavaScript / JQuery, you will need to make an if statement in the view.
Amaze me when I use Razor syntax, but it should be something like:
<%if (model.CanModifyList) { %>
<%= Html.CheckBoxFor(c => c.HasList)%>
<% } else { %>
<%= Html.CheckBoxFor(c => c.HasList, new { disabled = "disabled" })%>
<% } %>
, HTML- (, CheckBoxFor), HTML, , :)