One servo lags behind other

Hi I'm totally new to Arduino. This programme is a modification of the sweep example from the main website. I am trying to make the servo attached to pin 8 lag behind the other servo by two seconds. I know I need a delay(2000) command but have no idea where to put it all in the code. In other words one servo begins it's sweep two seconds after the first. Any help would be fantastic. many thanks.

#include <Servo.h>

Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created

int pos = 0; // variable to store the servo position

void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
myservo.attach(8); // attaches the servo on pin 8 to the servo object
}

void loop()
{
for(pos = 0; pos < 90; pos += 1) // goes from 0 degrees to 90 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 90; pos>=1; pos-=1) // goes from 90 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}

I know I need a delay(2000) command

No you don't.
You need to understand the blink without delay example in the IDE or you need to code them with a fixed difference between the commands not a fixed delay.
That is have the for loop increment two variables that start off at different values.

Which Arduino are you using that has a smiley face pin?

I know I need a delay(2000) command

No, you don't. You need, in fact, to get rid of all delays and the for loops. You need to read, understand, and embrace the philosophy espoused in the blink with delay example.

Periodically, as in every pass though loop(), you check to see if it is time to move the servos. If it is, you calculate a new position and send the servo there, for each servo. NO delay()s.

start with defining two servo-objects
then code:

myservoA.write(posservoA);
if (millis() > 2000) myservoB.write(posservoB);

delay(short or long delay if you really want it)

if (millis() > 2000) myservoB.write(posservoB);

That'll work...once

[ whoops, got that wrong, edited; ]

If you are happy with delay:

void loop()
{
  for(pos = 0; pos <= 90; pos += 1)  // goes from 0 degrees to 90 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }

  delay (2000 - 91*15) ;  // The ugly fix - fortunately 2000 >= 91*15 so this will work

  for(pos = 0; pos <= 90; pos += 1)  // goes from 0 degrees to 90 degrees
  {                                  // in steps of 1 degree
    myservo2.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }

  // probably some delay here?

  for(pos = 90; pos>=0; pos-=1)     // goes from 90 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }

  delay (2000 - 91*15) ;  // The ugly fix - fortunately 2000 >= 91*15 so this will work

  for(pos = 90; pos>=0; pos-=1)     // goes from 90 degrees to 0 degrees
  {                               
    myservo2.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  // probably a similar delay here?
}

But this won't work if the servos need to be simultaneously in motion.

Note I've fixed your loops so they actually iterate up to 90 and back down to 0.