You will haveIt is possible thru rewrite or observer: (observer is better to prevent rewrite conflicts)
Using Observer
Configure your 2 observers: loading the column to grid and loading of collection
<adminhtml>
<events>
<core_block_abstract_to_html_before>
<observers>
<{observer_name}>
<type>singleton</type>
<class>{namespace}_{module}/observer</class>
<method>beforeBlockToHtml</method>
</{observer_name}>
</observers>
</core_block_abstract_to_html_before>
<eav_collection_abstract_load_before>
<observers>
<{observer_name}>
<class>{namespace}_{module}/observer</class>
<method>beforeCollectionLoad</method>
</{observer_name}>
</observers>
</eav_collection_abstract_load_before>
</events>
</adminhtml>
Then create your observer class with the methods in the declaration
class {Namespace}_{Module}_Model_Observer
{
public function beforeBlockToHtml(Varien_Event_Observer $observer)
{
$grid = $observer->getBlock();
/**
* Mage_Adminhtml_Block_Customer_Grid
*/
if ($grid instanceof Mage_Adminhtml_Block_Customer_Grid) {
$grid->addColumnAfter(
'{column_code}',
array(
'header' => Mage::helper('{Module}_customer')->__('{{column_name}}'),
'index' => '{column_code}'
),
'entity_id'
);
}
}
public function beforeCollectionLoad(Varien_Event_Observer $observer)
{
$collection = $observer->getCollection();
if (!isset($collection)) {
return;
}
/**
* Mage_Customer_Model_Resource_Customer_Collection
*/
if ($collection instanceof Mage_Customer_Model_Resource_Customer_Collection) {
/* @var $collection Mage_Customer_Model_Resource_Customer_Collection */
$collection->addAttributeToSelect('{attribute_code}');
}
}
}
See this answer: http://magento.stackexchange.com/a/5986/21518
Using Rewrite
Rewrite the grid block's _prepareCollection
method and add your column to the collection.