Example 1: Your 404 page is not defined, so whenever an incorrect link is typed, the server returns a 200 OK and it just loads the home page. Somewhere on your site there is a bad link, so when the crawl followed it and returned a 200 OK , it recorded it as a real page and since it simply loads your home page, it is a duplicate. You need to define a 404 page in htaccess so this does not happen.
Example 2 + 3: the crawler is counting the following pages as your home page:
http://ecofriendlylink.com/index.php
http://www.ecofriendlylink.com/
http://wwwecofriendlylink.com/index.php
Thats because your home page can legitimately be loaded all 4 ways. This is a little different than Example 1 since these variations are normal. I suggest adding a non-www to www redirect in htaccess, as well as a redirect that forces a removal of the index.php.
However - before you do that! You should:
a) check to see where a majority of your external links point to (use www.opensiteexplorer.com). If the majority of them point to the non-www version then you may consider redirecting www to non-www. Also, check your internal links. If you redirect www to non-www or if you remove the index.php with a redirect, make sure that all internal links pointing home point to the proper URL. (so if you did a non-www to www redirect, and removed the index.php with a redirect, make sure all of your internal links point to http://www.ecofriendlylink.com/)