Calling a program doesn't require you to be in the directory with the application to start. You should be able to do that with the system() function:
Code:
system("c:\\Program Files\\Games\\checkers.exe");
Thats not the best way, but getting into process control is a bit advanced for a starting program. If you want to get into them take a look at CreateProcess() on MSDN
Starting a program as a process would look something like this:
Code:
PROCESS_INFORMATION ProcInfo;
STARTUPINFO StartInfo;
StartInfo.cb = sizeof(STARTINFO);
StartInfo.lpReserved = NULL;
StartInfo.lpDesktop = NULL;
StartInfo.lpTitle = NULL;
StartInfo.cbReserved2 = 0;
StartInfo.lpReserved2 = NULL;
StartInfo.dwFlags = 0;
CreateProcess( "c:\\Program Files\\Games\\checkers.exe", NULL, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &StartInfo, &ProcInfo);