First of all you have to modify page/html/breadcrumb.phtml
checking if you are in a product's page and then change your breadcrumb behaviour.
Something like this:
<?php if ($_product = Mage::registry('current_product')): ?>
<?php
$cats = $_product->getCategoryIds();
?>
<?php foreach ($cats as $catId): ?>
<div class="breadcrumbs">
<ul>
<?php $_cat = Mage::getModel('catalog/category')->load($catId); ?>
<?php
$parentPath = explode('/', $_cat->getPath());
$parentPath = array_splice($parentPath, 2);
?>
<?php foreach ($parentPath as $parentId): ?>
<?php $_prentCat = Mage::getModel('catalog/category')->load($parentId); ?>
<li><?php echo $_prentCat->getName() ?></li>
<?php endforeach ?>
<li><?php echo $_product->getName() ?></li>
</ul>
</div>
<?php endforeach; ?>
<?php else: ?>
... // Standard breadcrumb code
<?php endif; ?>
For best performance use this:
<?php if ($_product = Mage::registry('current_product')): ?>
<?php $cats = $_product->getCategoryIds(); ?>
<?php foreach ($cats as $catId): ?>
<div class="breadcrumbs">
<ul>
<?php $parentPath = Mage::getResourceModel('catalog/category')->getAttributeRawValue($catId, 'path'); ?>
<?php
$parentPath = explode('/', $parentPath);
$parentPath = array_splice($parentPath, 2);
?>
<?php foreach ($parentPath as $parentId): ?>
<li><?php echo $this->escapeHtml(Mage::getResourceModel('catalog/category')->getAttributeRawValue($parentId, 'name')) ?></li>
<?php endforeach ?>
<li><?php echo $_product->getName() ?></li>
</ul>
</div>
<?php endforeach; ?>
<?php else: ?>
... // Standard breadcrumb code
<?php endif; ?>