There's also something here which Microsoft used to know in the 9x days and has since forgot (because it's not immediately profitable to remember in the current paradigm). The needs of a single-user system are different from the needs of a network terminal. Since Windows 2000, every Windows PC is a network terminal. Since OSX, every Apple PC is a network terminal. Unix-derived OSes have always been targeted at network terminals. In a network terminal, the machine might be used by more than one user; therefore, you can't allow too much customization. The data on that terminal might be needed by another user on the network; therefore you must protect a significant amount of that data and must prioritize system operation over user desire at every turn.
Oh, and one more thing. Stop worrying about profit and trying to hamstring the user. Either create a good, working, product that you stand behind with every fiber of your being... or don't create a product in the first place.