Instead of calling your block as {{block type="catalog/product_special" template="catalog/product/list.phtml"}}
Call it as
<reference name="content">
<block type="catalog/product_special" name="cmsattr" alias="cmsattr" template="catalog/product/list.phtml">
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
</block>
</block>
</reference>
In Design section of cms page instead of Content section.
Please include <?php echo $this->getPagerHtml(); ?>
in you list.phtml file
Inside your block file 'List.phtml' add this function
public function getPagerHtml()
{
return $this->getChildHtml('pager');
}
In your _prepareLayout() funnction include following code for pagination
$pager = $this->getLayout()->createBlock('page/html_pager', 'my.pager')->setCollection($this->getItems());
$this->setChild('pager', $pager);