Why would getEntryTableAttributeHtml(EntryModel $entry, $attribute) not return proper labels? I have getEntryTableAttributeHtml(EntryModel $entry, $attribute) setup in my plugin file.  I have attributes defined in defineAdditionalEntryTableAttributes().  However when the page loads $attribute returns field:85 instead of one of the expected labels. Why might this occur?
I did a little digging in the source, and here's what's going on:

When Craft builds an element index, it pulls all available element attributes from the ElementIndexesService, where the method getAvailableTableAttributes adds all custom fields to the available attributes, with keys 'field:'.$field-&gt;id.

The ElementIndexesService class was added in Craft 2.5.2750, when a lot of things changed related to element indexes (this is when the Customizable Element Indexes feature was added).

Before 2.5, things worked differently – custom attributes weren't "pre-fetched" by Craft, but had to be added manually using the modifyEntryTableAttributes hook, where the $attribute variable passed to getEntryTableAttributeHtml would be a custom field handle, not the current field:{fieldId} value.

It's unfortunate that the official docs for getEntryTableAttributeHtml appear to not having been updated since Craft 2.4, as its current example code won't actually work (for custom fields) since 2.5.

Either way, here's a workaround which should make things a little bit easier in customizing the HTML for custom field attributes:

public function getEntryTableAttributeHtml(EntryModel $entry, $attribute)
{

    // If custom field, get field handle
    if (strncmp($attribute, 'field:', 6) === 0)
    {
        $fieldId = substr($attribute, 6);
        $field = craft()-&gt;fields-&gt;getFieldById($fieldId);
        $attribute = $field-&gt;handle;
    }

    // Get html by attribute (field handle)
    switch ($attribute)
    {
        case 'customFieldHandle' :
            return '&lt;span&gt;'.$entry-&gt;$attribute.'&lt;/span&gt;';
            break;
    }

}