Why are some time entries automatically flagged as non-billable?

This is because the project might have exceeded the contract amount and the time entry evaluation has kicked in. As the amount spent on the project exceeds the contract amount, you are prompted and the time entry's billable status is automatically adjusted to non-billable. You can continue to log non-billable entries, but have the option to change their status to billable manually. You can prevent this by applying the project rule 'Skip time entry evaluation'. In that case, BQE CORE will stop flagging the time entries as non-billable.