Child themes, over riding in the parents theme

The answer is to remove things in your child theme via an action that runs before the action the parent theme has hooked to, everything should be happening within an action of some sort.

For example, in your parent theme:

function do_something(){
    // something happens here
}
add_action( 'init', 'do_something' );

Then in your child theme:

function check_something(){
    remove_action( 'init', 'do_something' );
    add_action( 'init', 'do_my_own_thing' );
}
add_action( 'after_setup_theme', 'check_something' );

Or another example, in parent theme:

function some_func(){
    add_action( 'admin_menu', 'do_admin_things' );
}
add_action('init', 'some_func');

function do_admin_things(){
    // admin things
}

Then in the child theme, hook into init with a later priority:

function check_admin_things(){
    remove_action( 'admin_menu', 'do_admin_things' );
}
add_action( 'init', 'check_admin_things', 100 );