Я считаю, что глупец - это тот, кто чего-то не знает, но желая казаться умным говорит о том в чем мало или совсем не разбирается, желая казаться нужным лезет не в свое дело "причиняя добро".
А вот дурак от глупца отличается тем, что дурак чего-то не знает и знать не желает, не замечает неуместности своего поведения в обществе.
В современном языке слово дурак ничен не отличается от слово глупец, при этом слово глупец можно считать устаревшим и малоупотребимым. А вот в старых значениях слово дурак значило другое, в разные периоды назвали так сумашедших, умственно отсталых, были и другие значения.
Сжато. И без претензий. Глупость, как правило, проявляется в поведении. Причины просты: поспешность с принятием решения, непродуманность действий, чрезмерная доверчивость. Как следствие, явная ошибка. Вспомним хотя бы ажиотаж вокруг финансовых пирамид и особенно - пресловутых ваучеров, за которые якобы можно было "выручить" трехкомнатную квартиру. Правда, неглупый человек, пусть с опозданием, но всё же осознаёт свою оплошность (не велите казнить).
Другое дело - дурак. Это уже не про способность на "глупость несусветную", а про ограниченное состояние ума. Точнее явное (врождённое) скудоумие, помноженное на дурное воспитание. Подобная особь просто не в состоянии понять примитивность своего мышления, его никчемность и убогость. Хотя и это, говорят, тоже как-то иногда корректируется. Возможно. Но только специалистами.
Относительно рядового гражданина "с царём в голове", то ему желательно тактично уходить от тесного контакта с болваном. Тем более что деликатность - едва ли не единственное эффективное орудие сравнительного умного человека, способного подчас на такие милые (и не очень) глупости.