I don't think I'e ever been asked to solve something NP-Hard that wasn't already 'solved' by just incorporating an external library that will give you the answer you want using the best current techniques.
However I have definitely been asked to solve algorithmic problems.
Have worked both in insurance and gambling/financial so they do crop up from time to time.
This was my favourite, not least because I got to design the solution on paper first, pass it around to my colleagues to verify then implement with great zeal.
Given two collections of objects containing the same type, one historical and one newer, separate them into three collections, objects that have been removed, objects that have been modified and objects that have been added.
Solution I came up with has worst case performance of n^2, best case of n and average of 2n.