1) Have a set of standard template furniture items
2) Allow user to view the item through a WebGL viewer (or however its done these days).
3) Allow the user to adjust certain aspects of that piece of furniture within the viewer. IE desk surface height, depth, space between legs etc.
4) Use parametric algorithms to adjust the componentry accordingly within existing load bearing parameters. For example, "desktop needs attachment screws every 200mm". This kind of formula is already commonplace in many CAD packages [1].
5) Have the backend software export the parts as CNC cut files and create a bill of materials.
6) Package the cut parts and additional components (screws etc) and ship direct to client.
7)(optional depending on level of unscrupulousness) Have the parametric algorithms incorporate a fatigue based breaking point so they can justify throwing the crumbling desk away in five years and you can sell them more furniture "they" designed that is more in line with current trends.
[1]https://www.youtube.com/watch?v=GClGn1Y7bNA#t=3m58s
EDIT: formatting