For a pair of integers $a$ and $b$, with $0 < a < b < 1000$, set $S\subseteq \{ 1, 2, \dots , 2003\}$ is called a [i]skipping set[/i] for $(a, b)$ if for any pair of elements $s_1, s_2 \in S$, $|s_1 - s_2|\not\in \{ a, b\}$. Let $f(a, b)$ be the maximum size of a skipping set for $(a, b)$. Determine the maximum and minimum values of $f$.
1. **Minimum Value of \( f(a, b) \):**

   We need to show that for any pair of integers \( a \) and \( b \) with \( 0 < a < b < 1000 \), the minimum size of a skipping set \( S \) is at least 668.

   Consider the set \( \{1, 2, \dots, 2003\} \). We need to construct a skipping set \( S \) such that for any \( s_1, s_2 \in S \), \( |s_1 - s_2| \notin \{a, b\} \).

   Let's construct \( S \) by including elements in a specific pattern. Divide the set \( \{1, 2, \dots, 2003\} \) into blocks of size \( 3b \). In each block of size \( 3b \), we include elements in the following manner:
   - In the first \( b \) integers, include the union of the sets \( \{1, 2, \dots, a\} \), \( \{2a+1, 2a+2, \dots, 3a\} \), and so on, up to the largest even multiple of \( a \) that is less than \( b \).
   - In the second group of \( b \) integers, include all elements that were not included in the first \( b \) integers modulo \( b \).
   - Do not include any elements from the third group of \( b \) integers.

   This ensures that \( S \) contains approximately one-third of the elements in each block of size \( 3b \). Repeating this pattern for all blocks up to 2003, we get more than one-third of the elements in \( S \).

   For example, for \( a = 2 \) and \( b = 7 \):
   \[
   S = \{1, 2, 5, 6, 10, 11, 14\}
   \]
   and repeat this structure modulo \( 3b \).

   Since \( f(1, 2) = \left\lfloor \frac{2002 - 1}{3} \right\rfloor + 1 = 668 \), we conclude that the minimum value of \( f(a, b) \) is 668.

2. **Maximum Value of \( f(a, b) \):**

   To find the maximum value of \( f(a, b) \), consider the partition of the first 2003 integers into sets:
   \[
   A_1 = \{1, b+1, 2b+1, \dots, (n-1)b+1\}
   \]
   \[
   A_2 = \{2, b+2, 2b+2, \dots, (n-1)b+2\}
   \]
   \[
   \vdots
   \]
   \[
   A_b = \{b, 2b, 3b, \dots, (n-1)b\}
   \]
   where \( n \) is the greatest integer such that \( (n-1)b < 2003 \).

   By the pigeonhole principle, we can have at most \( \left\lfloor \frac{n+1}{2} \right\rfloor \) elements from each set in \( S \). This means that for \( z \in \mathbb{N} \), there can be at most \( \frac{z+1}{2z+1} \cdot 2003 \) elements in \( S \). This is maximal for the smallest \( z \), and thus there should be at most:
   \[
   \left\lfloor \frac{2 \times 2003}{3} \right\rfloor = 1335
   \]
   elements in \( S \). However, for any \( a < b \), there will be two elements with difference \( a \), so at least one element must be removed. Therefore, \( f(a, b) \leq 1334 \).

   Finally, consider \( f(667, 668) = 1334 \) since:
   \[
   S = \{1, 2, \dots, 666, 667, 1336, 1337, 1338, \dots, 2002\}
   \]
   suffices.

Conclusion:
\[
\boxed{668 \leq f(a, b) \leq 1334}
\]