Custom teasers and show summary checkbox
Set $node-&gt;teaser to the value you want to use as teaser. That is what node_submit(), the function indirectly called from node_form_submit(), does.
node_body_field(), the function that add the form fields for the node body, contains the following code:




// Check if we need to restore the teaser at the beginning of the body.
  $include = !isset($node-&gt;teaser) || ($node-&gt;teaser == substr($node-&gt;body, 0, strlen($node-&gt;teaser)));

// …

$form['teaser_include'] = array(
  '#type' =&gt; 'checkbox', 
  '#title' =&gt; t('Show summary in full view'), 
  '#default_value' =&gt; $include, 
  '#prefix' =&gt; '&lt;div class="teaser-checkbox"&gt;', 
  '#suffix' =&gt; '&lt;/div&gt;',
);


The checkbox is not selected if


the teaser is set, or
the teaser is not the initial part of the body





I would use hook_nodeapi('presave'), which is invoked before the node is saved, but before hook_nodeapi('insert') or hook_nodeapi('update').


To notice that, if the problem is the length of the teaser, node_teaser(), uses the value of the "teaser_length" Drupal variable as length if the teaser. I am not using Drupal 6, but if I remember well, there should be a setting page that allow to change the value of that variable. If the value of the variable is not modified from a setting page, then you can set it in settings.php, or from a custom module.