O.K. this is an abstraction, so it doesn't exactly extrapolate to your exact program, but look at these two functions. Now unless your saying that the defrag.exe won't allow you to return to the console screen(if so, seek other's help), then this should work.
It appears to me you have not made each menu it's own function and I think you'd benifit to do so...
In other words, getting to a menu is as simple as calling it by the function which encapsulates it. Note also that the users choice variable is declared within the function, not in main. Note also that after encapsulating all of your menus, main looks more like this:
printf("1)Do defrag/scandisc/other operations \n"
"2)Set up user info \n"
"3)Search Database \n"
"4)Exit \n\n" );
case 1: sub_menu1();
case 2: sub_menu2();
case 3: sub_menu4();
} //End of main_menu function
printf("1)Do defrag \n"
"2)Do scandisc \n"
"3)Exit \n\n" );
case 1: system("c:\\windows\\defrag.exe");
main_menu(); //<----should return you to the main menu
case 2: system("c:\\windows\\scandisc.exe");
} //End of sub_menu function
//function prototypes go here
/// define functions here
This of course simplifies things since calling "main_menu()" you are also providing the means to get to the other menus specified in it's "switch/case" statement...
I hope that helps a little.