ScoobyDooobyD00's example is that it lacks correct checking for the existence of $_GET['page'] before its use. This is well hanlded in Jack McSlay's example, but that example does not account for an invalid/missing include file (i.e., the filename passes the validity check, but the file does not exist).
Jack McSlay's example can be fixed with [man]file_exists/man, possibly including a check that the file to be included is not index.php, and ScoobyDooobyD00's example can be fixed by properly using [man]isset[/man]. I suspect ScoobyDooobyD00's example is better since it can be more directly transformed to use a database later on. On the other hand, Jack McSlay's example could be a more long term solution, but at the risk of the user being able to arbitrarily include any file in the current directory.