6 years ago I had the same requirement from one of the State Govt Depts in US.
First I created table that stores the all non-working days, this includes Holidays, Saturdays and Sundays. User is allowed to add future holidays or to change Sat/Sun as working day.

For a given date and the number of working days I wrote a function that will return the future working day.
This is not very difficult.

But you said, "Consquently we can't just discount Saturdays and Sundays as non working days". This shows the requirement is not very clear.

Tamil