You are right. These two sentences have completely different meanings.
The first thing you need to realise is that English tenses do not correspond to Italian tenses. The English present perfect doesn't have the same use as the passato prossimo. Do not assume the 'Ho lavorato', for example, always corresponds to 'I have worked'. It doesn't. If you try to relate English forms to Italian ones you will never be able to use English tenses correctly!
1. The present perfect ( I have worked) refers to an unfinished period of time, 2008 --> now, and in this case it indicates a continuing situation. The period of time is still 'open', because Dan is still working at the BBC now.
Dan has worked at the BBC for 8 years = Dan lavora presso BBC da 8 anni
2. The past simple ( I worked) refers to a finished period of time, for example 2003 - 2011. If we say 'He worked..' we know that this period of time is over and that Dan no longer works at the BBC.
Dan worked for the BBC for 8 years
= Dan lavorò/ha lavorato/lavorava presso BBC per 8 anni
Please forgive me if I've made any errors in Italian, but I hope that makes it a little clearer for you. And please do ask if it's still not clear.